Задать вопрос

Как принять данные POST из select multiple?

У меня есть форма, которая обрабатывается через AJAX, метод POST. Имеется select с множественным выбором на отправку. Сделал name=ITEM[], в response браузера показывает что ITEM получил 2 option, но в ajax.php у меня он указывает лишь один из них. Как обработать эти данные в if($_POST){} ?
Сам select
<form method="post" id="ajax_form">
               <label for="required_services_input">Тип услуги</label>
                <select class="form-control" id="select_required_services" name="OFFER_TYPE[]" multiple>
                    <option value="SERT">Сертификация</option>
                    <option value="TO">ТО</option>
                    <option value="TEO">ТЭО</option>
                    <option value="ADVICE">Консультация</option>
                </select>
    </form>

response image
5ed9926576dd0643313970.png
  • Вопрос задан
  • 534 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
HTML:
<form method="post" id="ajax_form">
    <label for="required_services_input">Тип услуги</label>
    <select class="form-control" id="select_required_services" name="OFFER_TYPE[]" multiple>
        <option value="SERT">Сертификация</option>
        <option value="TO">ТО</option>
        <option value="TEO">ТЭО</option>
        <option value="ADVICE">Консультация</option>
    </select>
</form>
<script>
    $(document).ready(function () {

        $('#select_required_services').on('change', function (event) {
            let select = $(this);
            $.ajax({
                url:     'my_url', 
                type:     "POST", 
                data: select.closest('form').serialize(),
                success: function(response) {
                    console.log(response);
                }
            });
        });
    });
</script>

PHP:
<?php
echo json_encode($_POST['OFFER_TYPE']);
// Обрабатываем, как обычный массив
// foreach ($_POST['OFFER_TYPE'] as $offer) {
//     echo $offer;
// }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы