Нет элемента со связанным идентификатором shelf
;это не удастся:
var shelfID = $('#shelf').val();
Кроме того, убедитесь, что вы используете preventDefault()
внутри любого события onClick для таких элементов ввода, как:
$(...).onClick(function(e){(
e.preventDefault();
});
Это предотвращает отправку формы формы, как обычно-AJAX one.
Также может быть проблема с использованием $('#shelf').val()
для получения выбранного параметра в любом случае.Попробуйте вместо этого:
$('#shelf option:selected').val();
Для устранения неполадок вы можете попробовать использовать .post()
вместо .ajax()
.Я нашел это намного удобнее.
$("#add_to_shelf_submit_button").click(function(e){
e.preventDefault();
var shelfID = $('#shelf').val();
alert('#add_to_shelf_submit_button clicked');
$.post("add_to_shelf.php", {"shelfID": shelfID, "bookID" : <?php $_GET['id'] ?>}, function(data){
alert(data);//response from add_to_shelf.php
});
});
Здесь я предполагаю, что вы знаете, что $_GET['id']
- это значение, взятое с текущей страницы, отправляет запрос POST в PHP и получается до того, какиз JS даже загружен.
Убедитесь, что вы проверяете $ _GET ['id'] перед его использованием.Таким образом, каждый может вложить что-нибудь в ваш JS (по крайней мере).