<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) { }
如果发布的数据中包含数据,则进行测试:
echo var_dump($_POST['data']);
我明白了:
name=blabla&comment=blabla1
然后当我做
echo $_POST['guest'];
什么都没有出现,它是 NULL。
问题:
我做错了什么?为什么POST客人没有被填满?如果它在DATA中,那么form的方法也是POST。
谢谢!
答案 0 :(得分:8)
将序列化字符串作为数据参数传递给$ .post而不是数据参数为序列化字符串的对象
$.post("events.php?action=send", $("#form").serialize() , function(data, error) { }
现在您将能够访问$_POST['guest']
等
答案 1 :(得分:2)
<?php
parse_str($_POST['data'], $data);
print_r($data);
答案 2 :(得分:0)
你这样做是错误的。试试这个
$.post(
"events.php?action=send",
$("#form").serialize() ,
function(data, error) {}
);
在php端访问$ _POST这样的数组
echo $_POST['guest'];
echo $_POST['textarea'];
删除您不需要的数据密钥。$("#form").serialize()
将在帖子中创建一个查询字符串,您可以在访问usuall表单时轻松访问该字符串。
参考
答案 3 :(得分:-1)
根据你所写的内容,看起来像$ _POST ['data'] ['guest']会有你想要的东西。