Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Передать имя кнопки аяксом (https://javascript.ru/forum/server/75439-peredat-imya-knopki-ayaksom.html)

Sonya 09.10.2018 12:02

Передать имя кнопки аяксом
 
Здравствуйте! Подскажите, пожалуйста, как аяксом передать имя кнопки?
Есть форма в которой несколько кнопок субмит, как аяксом передать имя копки, чтобы обработчик принял её, как
if (isset($_POST['button1'])){
    echo 'Кнопка 1';
}else{
    echo 'Кнопка 1';
}

laimas 09.10.2018 13:23

А проблема в чем - как передать или как получить?

Sonya 09.10.2018 13:46

Как передать.

laimas 09.10.2018 14:08

Если используется JQ, а он не помещает кнопку submit в набор полей, то можно ее добавить например так:

$('form').submit(function(event) {
    event.preventDefault();
    //в параметрах запроса 
    data: $(this).serialize()+'&src='+event.originalEvent.explicitOriginalTarget.name


$_POST['src'] на сервере будет содержать имя нажатой кнопки.

Sonya 09.10.2018 14:19

Так правильно?
function ajax() {
      $.ajax({
        url: 'init.php',
        method: 'POST',
		data: $(this).serialize()+'&src='+event.originalEvent.explicitOriginalTarget.name,
        success: function(data) {
          $('#div').html(data);
        },
      });
}

laimas 09.10.2018 14:22

Нет, какое может быть $('form').submit в функции ajax()? $('form').submit это установка обработчика события onsubmit формы.

Sonya 09.10.2018 14:45

$('form').submit(function(event) {
  event.preventDefault();
    $.ajax({
        url: 'init.php',
        method: 'POST',
	data: $(this).serialize()+'&src='+event.originalEvent.explicitOriginalTarget.name,
        success: function(data) {
          $('#div').html(data);
        },
    });
}

Так правильно?

laimas 09.10.2018 17:28

Это да, но установка обработчика должна быть описана либо в обработчике события загрузки документа, либо ниже html кода формы, например в конце body. И это я для примера пишу $('form'), а у вас на сайте форм может быть не одна и при отправлении каждой будет срабатывать этот обработчик. Поэтому конкретизируйте в селекторе отправление какой именно формы будет обрабатываться этим обработчиком.

Sonya 09.10.2018 17:38

Спасибо!


Часовой пояс GMT +3, время: 18:47.