我正在使用jQuery和Codeigniter通过AJAX更新数据库。单击按钮时,以下代码似乎没有执行任何操作或向控制器发送任何内容...
jQuery的:
$("#button_submit1").click(function(e) {
$.ajax({
type: "POST",
url: window.location.href,
dataType: "json",
data: $('#writereview_form').serialize() + '&ajax=true',
cache: false,
success: function(data) {
alert("yay");
//$("#writereview_box").fadeOut(1000);
}
});
return false;
});
HTML:
<form action="http://mysite.com/places/writereview/2107" id="writereview_form" method="post" accept-charset="utf-8">
...
...
<input type="submit" name="submit" value="Submit Review" class="button_submit" id="button_submit1">
为什么没有发送ajax数据的想法?
答案 0 :(得分:4)
在这种情况下,最好绑定到表单上的“submit”事件,然后使用preventDefault()
来停止HTML提交并改为使用Ajax。
您还应该使用表单的操作而不是window.location
$("#writereview_form").submit(function(e) {
var $this = $(this);
e.preventDefault();
$.ajax({
type: "POST",
url: $this.attr('action'),
dataType: "json",
data: $this.serialize() + '&ajax=true',
cache: false,
success: function(data) {
alert("yay");
//$("#writereview_box").fadeOut(1000);
}
});
});
答案 1 :(得分:0)
尝试不使用window.location.href
并将网址设为url: "page.php",