我有以下表格,没有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参数?
答案 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!')}
})
});
});