如何反序列化服务器部分中的 JSON 数据
How to unserialize the JSON data in server part
我有一个简单的表格,我尝试 post 使用 jQuery post JSON 格式。表格正在 post 但我的问题在 PHP 部分。我无法获取数据。从其他堆栈问题中,我找到了只做 $_POST['FirstName']
的解决方案,但我得到的结果是 "FirstName=john&LastName=plar&Address=home&PhoneNumber=23423423".
如何解码这个 JSON 数据?以下是我到目前为止尝试过的代码。谢谢。
<form action="user.php" method="post" id="myForm">
First Name: <input type="text" name="FirstName" />
Last Name: <input type="text" name="LastName" />
Address: <input type="text" name="Address" />
Phone: <input type="text" name="PhoneNumber" />
<input type="submit" id="submit" value="Submit"/>
</form>
<script>
$("#submit").on('click', function(e){
e.preventDefault();
var data = $("#myForm input").serialize();
$.post('user.php',{"data":JSON.stringify(data)},function(data){
},'json');
})
</script>
user.php
$object =$_POST['data'];
$array = json_decode($object);
print_r($object);
您根本不需要使用 JSON,只需 serialize and upload 表格即可。
$("#submit").on('click', function(e){
e.preventDefault();
$.post(
'user.php',
$("#myForm").serialize(),
function(data, textStatus){
// do stuff with the response
}
);
});
然后在你的 PHP
<?php
echo $_POST["FirstName"];
// etc
您可以对脚本和 PHP 代码进行一些更改,以获得不需要反序列化的本机 $_POST 数据:
更改脚本使发布的数据只是您的序列化形式:
$("#submit").on('click', function(e){
e.preventDefault();
$.post('user.php',{$("#myForm").serialize()},function(data){});
});
并且在您的 PHP 代码中,只需转储您的 $_POST 变量:
var_dump($_POST);
你可以得到这样的结果:
array(4) {
["FirstName"]=>
string(7) "b j hhj"
["LastName"]=>
string(7) "bhjbhj "
["Address"]=>
string(5) "jhjjh"
["PhoneNumber"]=>
string(0) ""
}
这比序列化和反序列化效率更高。
我有一个简单的表格,我尝试 post 使用 jQuery post JSON 格式。表格正在 post 但我的问题在 PHP 部分。我无法获取数据。从其他堆栈问题中,我找到了只做 $_POST['FirstName']
的解决方案,但我得到的结果是 "FirstName=john&LastName=plar&Address=home&PhoneNumber=23423423".
如何解码这个 JSON 数据?以下是我到目前为止尝试过的代码。谢谢。
<form action="user.php" method="post" id="myForm">
First Name: <input type="text" name="FirstName" />
Last Name: <input type="text" name="LastName" />
Address: <input type="text" name="Address" />
Phone: <input type="text" name="PhoneNumber" />
<input type="submit" id="submit" value="Submit"/>
</form>
<script>
$("#submit").on('click', function(e){
e.preventDefault();
var data = $("#myForm input").serialize();
$.post('user.php',{"data":JSON.stringify(data)},function(data){
},'json');
})
</script>
user.php
$object =$_POST['data'];
$array = json_decode($object);
print_r($object);
您根本不需要使用 JSON,只需 serialize and upload 表格即可。
$("#submit").on('click', function(e){
e.preventDefault();
$.post(
'user.php',
$("#myForm").serialize(),
function(data, textStatus){
// do stuff with the response
}
);
});
然后在你的 PHP
<?php
echo $_POST["FirstName"];
// etc
您可以对脚本和 PHP 代码进行一些更改,以获得不需要反序列化的本机 $_POST 数据:
更改脚本使发布的数据只是您的序列化形式:
$("#submit").on('click', function(e){
e.preventDefault();
$.post('user.php',{$("#myForm").serialize()},function(data){});
});
并且在您的 PHP 代码中,只需转储您的 $_POST 变量:
var_dump($_POST);
你可以得到这样的结果:
array(4) {
["FirstName"]=>
string(7) "b j hhj"
["LastName"]=>
string(7) "bhjbhj "
["Address"]=>
string(5) "jhjjh"
["PhoneNumber"]=>
string(0) ""
}
这比序列化和反序列化效率更高。