Nyxynyxx
Nyxynyxx

Reputation: 1183

AJAX post not working

I'm using jQuery and Codeigniter to update the database via AJAX. The following code does not seem to do anything or send anything to my controller when the button is clicked...

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">

Any ideas why the ajax data is not being sent?

Upvotes: 0

Views: 4245

Answers (2)

Jayantha Lal Sirisena
Jayantha Lal Sirisena

Reputation: 21366

Try withiut using window.location.href and giving url as url: "page.php",

Upvotes: 0

Greg Guida
Greg Guida

Reputation: 7512

In this case its better to bind to the 'submit' event on the form and then use preventDefault() to stop the HTML submission and use Ajax instead.

You should also use the form's action instead of 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);
      }
  });

});

Upvotes: 4

Related Questions