如何将JSON对象存储到php会话变量中?
下面是一个关于我尝试做什么的例子:
var jsonObject={ "menu":
{
"intro":{
"intosub":"sub_1"
}
"vis":{
"visub":"sub_2"
}
}
var string=JSON.stringify(jsonobject);
var phpcode="<?php
$_SESSION["jsonObject"]=
"
phpcode+=string+"?>";
首先,客户端无法访问$_SESSION变量(使用JS)。
您需要将数据发送到服务器,并使用一些服务器端代码将发送的数据存储在$_SESSION中。
Ajax是向服务器发送数据的一种方式。
这是使用jQueryPost的简写方法。
// Client side code in Javascript
var jsonObject={ "menu":
{
"intro":{
"intosub":"sub_1"
},
"vis":{
"visub":"sub_2"
}
};
$.post("control.php", jsonObject, function (returnedData) {
console.log(returnedData);
});
// Server Side PHP code in "control.php"
<?php
if (isset($_POST['menu'])) {
$_SESSION['obj'] = $_POST['menu'];
// these echo commands will output to the 'returnedData' variable
// that can be used in JS
echo $_SESSION['obj']['intro']['intosub'];
echo "<br>";
echo $_SESSION['obj']['vis']['visub'];
}
// the output in the browser console would be
// sub_1
// sub_2
注:
正如@aabccsmith所指出的,使用此代码将打开您的服务器端,以便通过客户端javascript进行操作。请考虑到这一点,并验证从前端客户端获得的所有输入。