我的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来编写表单。
答案 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请求时序列化数据已被反序列化为数组