我正在尝试使用jQuery的.ajax()函数提交表单。看起来它应该很简单,但由于某种原因我无法获得类型:“POST”才能正常工作。使用类型:“GET”没有问题,但“POST”似乎没有实际发布任何东西到我接受的PHP脚本。当我执行print_r($ _ POST)时,它返回一个空数组。我尝试在表单输入上使用输入类型“提交”和“按钮”但它似乎没有改变任何东西。任何想法为什么它不起作用?
Ps - 此页面上有超过1个表格。
编辑澄清
如果我在使用type:“GET”时执行print_r($ _ GET),它会输出所有正确的数据,但是如果我更改.ajax选项以输入:“POST”并尝试print_r($ _ POST)它会显示一个没有内容的空白数组。
Js代码:
var dataString = 'reply_text='+ test + '&post_id=' + post_id ; $.ajax({ type: "POST", url: "process.php", data: dataString, cache: false }); return false;
表格代码:
<form action="" method="post"> <textarea id="textboxcontent" name="reply_text"/> <input type="submit" name="reply_submit" value="submit comment"/> </form>
答案 0 :(得分:2)
这可能会更好:
var text = ...
var post_id = ...
$.ajax({
type: 'POST',
url: 'process.php',
data: { reply_text: text, post_id: post_id }
});
答案 1 :(得分:0)
你如何连接你的活动?你确定它被触发了吗?试着在那里放一个警报或什么东西,以确保?
dataString
看起来像什么? type: 'POST'
足以使ajax回调成为一个帖子,因此可能是你的数据以错误的方式传递。
答案 2 :(得分:0)
如果您想使用AJAX发布表单,我建议使用jQuery Form Plugin,这样做非常好且不引人注目。
答案 3 :(得分:0)
var formData = {
'test': $('input[name=text]').val(),
'post_id': $('input[name=post_id]').val()
};
// process the form
$.ajax({
type: 'POST', // define the type of HTTP verb we want to use (POST for our form)
url: 'process.php', // the url where we want to POST
data: formData, // our data object
dataType: 'html', // what type of data do we expect back from the server
encode: true,
success: function(updatedTable) {
//alert(updatedTable);
$('div#tableHolder').html(updatedTable);
}
})