2009-12-17 2 views
0

Вот как выглядит ситуация:код Javascript для обработки поведения формы

У меня есть несколько простых форм

<form action='settings.php' method='post'> 
<input type='hidden' name='setting' value='value1'> 
<input type='submit' value='Value1'> 
</form> 

Другие малые формы, близкие к нему имеют значение2, Value3, ... для конкретного SETTING1 , и т. д.

Теперь у меня есть все эти формы, размещенные на подстранице settings.php, но я также хотел бы иметь копии одного или двух из них на подстранице index.php (для удобства доступа, поскольку они в определенных ситуациях довольно часто используются). Дело в том, что я не хочу, чтобы эти формы, основанные на index.php, перенаправляли меня каким-либо образом на settings.php, просто отправляйте скрытое значение, чтобы изменить настройки, и все.

Как я могу это сделать с помощью JS?

Приветствия

ответ

0

Да, вы могли бы использовать AJAX вызова, чтобы послать запрос в файл settings.php. Вероятно, вы захотите, чтобы PHP-код возвращал то, что JavaScript может использовать, чтобы знать, был ли запрос успешным или нет (например, с использованием JSON вместо HTML).

+0

Я еще не знаком с AJAX, никаких подсказок о том, с чего начать? Спасибо – Andrew

+0

Я определенно рекомендую исследовать jquery, чтобы помочь в выполнении вашего кода JavaScript. Шаги, которые я могу подумать о том, что вам нужно будет сделать: - привязать событие нажатия кнопки к функции JavaScript (используя метод привязки) - в рамках этой функции сериализуйте настройки в формате, который settings.php будет accept - Сделать вызов AJAX, передающий данные настроек (с использованием метода jQuery.get) - Измените settings.php для вывода JSON, если вызывается из вашего вызова AJAX - На основе ответа от settings.php дайте обратную связь пользователю , – mopoke

0

Адрес: ajax getData.

function getData(dataSource, targetDiv){ 

    var XMLHttpRequestObject = false; 

    if (window.XMLHttpRequest) { 
    XMLHttpRequestObject = new XMLHttpRequest(); 
    } else if (window.ActiveXObject) { 
    XMLHttpRequestObject = new 
     ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    if(XMLHttpRequestObject) { 
     var obj = document.getElementById(targetDiv); 
     XMLHttpRequestObject.open("GET", "settings.php?form="+dataSource+"&t="+new Date().getTime()); 

     XMLHttpRequestObject.onreadystatechange = function() 
     { 
     if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { 
      obj.innerHTML = XMLHttpRequestObject.responseText; 
     } 
     } 

     XMLHttpRequestObject.send(null); 
    } 
} 

использовать эту функцию, чтобы отправить форму в файл setting.php, который должен возвращать сообщение подтверждения в index.php (внутри targetDiv).

Параметры функции

1) DataSource - это переменная величина, которую вы отправляете settings.php

2) targetDiv - это ДИВ на индекс PHP, который с отображения ответа settings.php

Надеюсь, что это имеет смысл.

Смежные вопросы