Как видно из названия, я использую ajax для отправки результатов формы во внешний файл.AJAX submit form, return success
jQuery отлично работает (то есть, форма появляется, когда я нажимаю соответствующую ссылку) до тех пор, пока я не добавлю Ajax - тогда вся вещь ломается.
Я просмотрел его десятки раз, и я действительно не вижу, что я делаю неправильно.
Jquery + Ajax:
$(document).ready(function(){
$("#change_shelves").click(function(){
$("#add_to_shelf").fadeIn(function(){});
});
$("#add_to_shelf_submit_button").click(function(){
var shelfID = $('#shelf').val();
$.ajax({
type: "post",
url: "add_to_shelf.php",
data: "shelfID=" + shelfID + "&bookID=" + <?php $_GET['id'] ?>,
success: function() {
$("#add_to_shelf").fadeOut(function(){});
$("#success").fadeIn(function(){});
}
});
});
});
HTML:
<p id="on_shelf">This book is on your <a href="want_to_read.php">want to read</a> shelf. <span id="change_shelves"><a href="#">Change shelves</a></span>.</p>
<form style="display: none;" id = "add_to_shelf" method="POST" action="add_to_shelf.php">
<select name = "shelf">
<option value = "1">Read</option>
<option value = "2">Want to Read</option>
<option value = "3">Reading</option>
</select>
<input type = "submit" id="add_to_shelf_submit_button" value = "submit" name = "Submit" />
</form>
<p style="display: none;" id="success">Shelf updated.</p>
Внешний файл add_to_shelf.php
это не проблема - данные успешно отправлен только при использовании JQuery, так что я знаю, что файл верный.
Это опечатка или дополнительная '});' в строке непосредственно перед последней? –
Какова конкретная проблема, что означает «все это ломается»? – mariogl
Хорошо, теперь он работает. Мне нужно было удалить действие в форме, чтобы заставить ajax работать. –