如何在ajax中为表单操作添加参数?

时间:2016-10-01 04:21:14

标签: javascript php jquery ajax forms

我有以下表格,没有ajax

可以正常工作
echo "

<form action='upload_Comment.php?post_id=$post_id' method='post' id='comments'>

<textarea class='form-control' name='comment' rows='1'></textarea>

<input type='submit' name='post_comment'>
</form>


    ";

但我需要使用ajax来防止在提交表单时重新加载页面。

$(document).ready(function(){
  $('#comments').on('submit', function(e) {
    e.preventDefault();

    $.ajax({
      url: "upload_comment.php?post_id= + post_id ",
      type: "POST",
      data: new FormData(this),
      dataType : 'json',
      contentType: false,
      processData: false,
      success : function(data){                   
                              console.log(data);

                      },
                      error: function(){alert('Error!')}
    })

  });
});

每次提交新帖子时我都需要一种传递$ post_id参数值的方法,并且post_id对于每个帖子都是唯一的。如何在ajax表单url中传递post_id参数?

2 个答案:

答案 0 :(得分:0)

你不应该混用POST和GET请求,因为GET用于获取信息,no用于传递信息。 你的代码可能应该是这样的:

var fData = new FormData(this);
fData.append('post_id', post_id);

另外,请阅读:HTTP POST with URL query parameters -- good idea or not?

"upload_comment.php?post_id= + post_id "

应该是这样的(严重的是,不要这样做):

"upload_comment.php?post_id=" + post_id 

答案 1 :(得分:0)

采取隐藏的游戏并将帖子ID的值赋予其中     

<textarea class='form-control' name='comment' rows='1'></textarea>
<input type="hidden" value="<?=$post_id;?>" id="postId">
<input type='submit' name='post_comment'>
</form>

和js代码将是

$(document).ready(function(){
$('#comments').on('submit', function(e) {
e.preventDefault();
var post_id =$('#postId').val();
$.ajax({
  url: "upload_comment.php?post_id=" + post_id,
  type: "POST",
  data: new FormData(this),
  dataType : 'json',
  contentType: false,
  processData: false,
  success : function(data){                   
                          console.log(data);

                  },
                  error: function(){alert('Error!')}
})

});
 });