AJAX帖子不起作用

时间:2011-07-21 16:10:16

标签: php javascript jquery ajax codeigniter

我正在使用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数据的想法?

2 个答案:

答案 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",