В чём ошибка в реализации обработчика AJAX-запроса

151
22 апреля 2021, 08:00

Задача такая - с помощью jax-запроса передать данные на обработчик, который с полученными данными в качестве аргументов вызовет функцию.

Форма:

<form method="POST" id = "formx" action="javascript:void(null);" onsubmit="call(this)">
    <p>
        Кол-во бронируемых номеров:
        <select id="room_num_search" class="room_num_search" name="room_num_search">
            <?php for($i=1; $i <= $show; $i++): ?>
                <option value="<?php echo $i;  ?>"><?php echo $i; ?></option>
            <?php endfor;  ?>
        </select>
    </p>
    <input type="submit" value="Выбрать">
</form>

Ajax-запрос:

<script type="text/javascript" language="javascript">
    function call(form) {
        var msg   = jQuery(form).serialize();
        jQuery.ajax({
            // Метод передачи
            type: 'POST',
            // Файл которому передаем запрос и получаем ответ
            url: '<?php echo '/path/to/ajax.php'   ?>',
            // Кеширование
            cache: false,
            // Верямя ожидания ответа, в мили секундах 1000 мс = 1 сек
            timeout:3000,
            data: msg,
            // Функция сработает при успешном получении данных
            success: function(data) {
                // Отображаем данные в форме
                jQuery(".results").html(data);
            },
            // Функция срабатывает в период ожидания данных
            beforeSend: function(data) {
                jQuery(".results").html('<p>Ожидание данных...</p>');
            },
            // Тип данных
            dataType:"html",
            // Функция сработает в случае ошибки
            error:  function(data){
                jQuery(".results").html('<p>Возникла неизвестная ошибка. Пожалуйста, попробуйте чуть позже...</p>');
            },
        });
    };
</script>

PHP-обработчик (ajax.php):

<?php
$room_num_search = $_POST['room_num_search'];
STHotel::qwerty($room_num_search);
?>

Сама вызываемая функция:

    static function qwerty($room_num_search){
        echo $room_num_search;
    }

Выходит ошибка: 500 (Internal Server Error) . Если в обработчике просто написать echo $room_num_search , то всё выводится. Но мне нужно, чтобы вызвалась функция с переданным аргументом.

READ ALSO
Вопрос про FILTER_SANITIZE_EMAIL

Вопрос про FILTER_SANITIZE_EMAIL

Скажите, почему FILTER_SANITIZE_EMAIL не приводит следующий email в вид: mail@mailcom?

182
В docker контейнере не запускается php7.2-fpm

В docker контейнере не запускается php7.2-fpm

очень надеюсь на вашу помощь, тк в unix еще новичок

210