1
<form action="index.php" method="POST" id="form">
<input type="text" name="guest" id="guest_name" class="textbox"/><br />
<textarea name="textarea" id="text" class="textarea"></textarea/><br />
<input type="submit" id="submit" class="submit"/><br />
</form>

jQuery

$.post("events.php?action=send", { data :  $("#form").serialize() }, function(data, error) { }

测试 post DATA 中是否包含数据:

echo var_dump($_POST['data']);

我明白了:

name=blabla&comment=blabla1

然后当我这样做时

echo $_POST['guest'];

什么都没有出现,它是一个NULL。

问题:

我做错了什么?为什么 POST 客人没有被填满?如果它在 DATA 中,并且表单的方法也是 POST。

谢谢!

4

4 回答 4

8

将序列化字符串作为数据参数传递给 $.post 而不是数据参数是序列化字符串的对象

$.post("events.php?action=send", $("#form").serialize() , function(data, error) { }

现在您将能够访问$_POST['guest']

于 2013-04-14T19:11:35.010 回答
2
<?php
parse_str($_POST['data'], $data);
print_r($data);
于 2013-04-14T19:10:45.243 回答
0

你做错了。像这样试试

$.post(
        "events.php?action=send", 
        $("#form").serialize() , 
        function(data, error) {}
);

在 php 端访问 $_POST 数组是这样的

echo $_POST['guest'];
echo $_POST['textarea'];

删除不需要的数据密钥。$("#form").serialize()将在 post 中创建一个查询字符串,您可以在通常的表单提交时轻松访问该字符串。

参考

jQuery .serialize

于 2013-04-14T19:11:55.487 回答
-1

从您所写的内容看来, $_POST['data']['guest'] 将包含您要查找的内容。

于 2013-04-14T19:09:26.330 回答