2011-07-21 81 views
0

我正在使用jQuery和Codeigniter通过AJAX更新数据库。下面的代码似乎并没有做任何事情,或者单击按钮时送什么东西给我的控制器......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

是否检查有在页面没有JavaScript错误? – JJJ

+0

使用Chrome的控制台是没有javascript错误。当我点击提交按钮 – Nyxynyxx

+1

时,没有任何反应,因为您已经使用输入类型提交按钮提交。尝试添加一个带按钮样式的计划链接,并将onclick =“Functin” –

回答

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); 
     } 
    }); 

}); 
0

尝试withiut使用window.location.href并给予网址为url: "page.php",