【发布时间】:2012-02-25 20:19:50
【问题描述】:
正如标题所示,我正在使用 ajax 将表单结果发送到外部文件。
在我添加 Ajax 之前,jQuery 可以完美运行(也就是说,当我单击相关链接时会出现表单)——然后整个事情就中断了。
我已经看了几十遍了,我真的看不出我做错了什么。
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 时数据已成功提交,因此我知道该文件是正确的。
【问题讨论】:
-
是那个错字还是在最后一个之前的行中额外的
});? -
具体问题是什么,“整个事情都坏了”是什么意思?
-
好的,现在可以了。我需要删除表单中的操作以使 ajax 工作。
-
好的,从头开始。现在它可以工作了,但整个页面都会刷新,这意味着shelfID 永远不会被发送。中断意味着什么都不会发生 - 只是页面刷新。
-
看我的回答,你必须阻止提交。