Задача такая - с помощью 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 , то всё выводится. Но мне нужно, чтобы вызвалась функция с переданным аргументом.
Продвижение своими сайтами как стратегия роста и независимости