【发布时间】:2017-02-09 17:01:33
【问题描述】:
我有以下表格,不用 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 参数?
【问题讨论】:
-
如果它是服务器端变量,请将其放置在隐藏输入中,而不是操作的查询字符串中
-
我尝试在隐藏字段中传递 $post_id 值,但它只从数据库中获取第一个帖子 ID,而不是特定于帖子提交
-
您可能想尝试一下会话变量。通过在显示表单之前在会话变量中设置帖子 ID,并直接在您的处理程序中获取它,upload_comment.php 而不使用查询字符串。
标签: javascript php jquery ajax forms