我不知道如何在php中获取序列化数据

时间:2012-12-10 10:07:38

标签: php html forms jquery

我的html表单是:

<form id="myform" action="" method="post" >
    <input id="firstname" name="firstname" type="text" placeholder="FIRST NAME" autofocus><br>
    <input id="lastname" name="lastname" type="text" placeholder="LAST NAME"><br>
    <input id="gender" name="gender" type="text" placeholder="GENDER" ><br>
    <input id="email" name="email" type="email" placeholder="EMAIL"><br>
    <input id="date" name="date" type="date" placeholder="JOINING DATE" ><br>
    <input id="designation" name="designation" type="text" placeholder="DESIGNATION"><br>
    <input id="username" name="username" type="text" placeholder="USER NAME" ><br>
    <input id="password1" name="password1" type="password" placeholder="PASSWORD" ><br>
    <input id="password2" name="password2" type="password" placeholder="CONFORM PASSWORD" ><br>
    <input type="button" id="submit" value="SUBMIT" />
</form>

在这个程序中,我使用ajax进行验证。为此我正在序列化表格。

data:$("#myform").serialize(),

我不知道如何在PHP中反序列化它。任何人都可以解释在PHP中反序列化的代码,并且我使用html5来编写表单。

6 个答案:

答案 0 :(得分:0)

由于您的方法是post,因此您的变量应该被读取为任何其他后置变量:

$firstname=$_POST['firstname'];
$lastname=$_POST['lastname'];

答案 1 :(得分:0)

使用unserialize() php函数。

unserialize()接受一个序列化变量并将其转换回PHP值。

http://php.net/manual/en/function.unserialize.php

但是在你的情况下......既然你要发布数据,你可以用那些具有同名的名字来获取postd数据..

 $firstname=$_POST['firstname'];
 $email=$_POST['email'];
 .....

答案 2 :(得分:0)

所有序列化都将表单字段转换为可以发送到服务器的URL字符串。

您按照与提交的常规表单相同的方式采取行动:

$firstName = $_POST['firstname'];
....

答案 3 :(得分:0)

我想问题在于提交表单。如果您通过AJAX发布,请检查jquerypost。或者TRY

<input type="submit" id="submit" value="SUBMIT" />

而不是

<input type="button" id="submit" value="SUBMIT" />

成功发布后,我没有遇到$_POST['firstname']访问的问题。

答案 4 :(得分:0)

您没有向我们展示完整的$ .ajax请求代码:它可能是GET或POST请求。

来自jQuery.ajax文档

  

默认情况下,使用GET HTTP方法发送Ajax请求。如果   需要POST方法,可以通过设置a来指定方法   类型选项的值。

因此,在GET请求的情况下,您应该在PHP代码中检查$ _GET。或者只是检查$ _REQUEST数组。并访问其他答案中显示的表单值:$ _GET [“firstname”],例如

答案 5 :(得分:0)

$_POST变量检索数据,不需要反序列化... 因为在发送ajax请求时序列化数据已被反序列化为数组