Как отправить значение переменной jquery в переменную PHP в массиве? - PullRequest
0 голосов
/ 04 августа 2020

Я новичок в Jquery и PHP, и я пытаюсь получить значения флажков в форме фильтра и отправить на php. Я хотел бы выяснить, как сохранить переменную PHP в виде массива всех отмеченных флажков.

Моя форма:

<input type="checkbox" name="applications[]" <?php echo $selected['applications/food-applications/sugar-reduction/'] ?> id="sugar-reduction" value="applications/food-applications/sugar-reduction/" onchange="$('#app_filter').submit();" >
<input type="checkbox" name="applications[]" <?php echo $selected['applications/food-applications/binding-systems/'] ?> id="binding-systems" value="applications/food-applications/binding-systems/" onchange="$('#app_filter').submit();" >
<input type="checkbox" name="applications[]" <?php echo $selected['applications/food-applications/shelf-life-extension/'] ?> id="shelf-life-extension" value="applications/food-applications/shelf-life-extension/" onchange="$('#app_filter').submit();" >

Скрипт:

$("#app_filter").submit(function() {
                                
    event.preventDefault();
    
        var checkbox_value = "";
        $(":checked").each(function () {
            var ischecked = $(this).is(":checked");
            if (ischecked) {
                checkbox_value += $(this).val() + ", ";
            }
        });
        console.log(checkbox_value);
        return false;
});
                                            

Когда все три флажка отмечены, значения в консоли успешно отображаются следующим образом:

applications/food-applications/sugar-reduction/, applications/food-applications/binding-systems/, applications/food-applications/shelf-life-extension/, 

Я хотел бы сохранить значения в массиве и в переменной PHP. В идеале вот так ...

array(applications/food-applications/sugar-reduction/, applications/food-applications/binding-systems/, applications/food-applications/shelf-life-extension/,)

Такое возможно? Мы будем благодарны за любые рекомендации!

1 Ответ

0 голосов
/ 04 августа 2020

Используйте $(this).serialize() для кодирования всех входных данных формы. Затем вы можете получить к ним доступ в PHP так же, как и при отправке обычной формы.

$("#app_filter").submit(function(event) {

  event.preventDefault();
  $.ajax({
      url: $(this).attr("action"),
      type: "post",
      data: $(this).serialize(),
      success: function(response) {
        console.log(response);
      }
    }
  });
});

В PHP, $_POST['applications'] будет массивом всех выбранных значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...