Hi我需要一些关于如何将json对象存储到php会话变量的示例。json对象如下:
var jsonObject={ "menu":
{
"intro":{
"intosub":"sub_1"
}
"vis":{
"visub":"sub_2"
}
}
关于
根据您给我们的信息,您的json对象是错误的。应该是:
var jsonObject={
"menu":
{
"intro":{
"intosub":"sub_1"
},
"vis":{
"visub":"sub_2"
}
}
};
编辑
var jsonObject={ "menu": { "intro":{ "intosub":"sub_1" }, "vis":{ "visub":"sub_2" } } var string=JSON.stringify(jsonobject); var phpcode="<?php $_SESSION["jsonObject"]= " phpcode+=string+"?>";
当PHP是服务器端时,Javascript是客户端。这意味着,当您使用javascript创建对象时,您不能再与服务器交互,除非您使用Ajax,该Ajax允许将客户端数据传输到服务器,然后在必要时再次将其发送到客户端。
您对var phpcode="<?php $_SESSION["jsonObject"]= " phpcode+=string+"?>"
所做的是,在服务器发送到客户端之前,您要求服务器用…填充您的"phpcode"JS变量。。。我真的不明白你在这里尝试了什么来设置会话变量,但如果你试图用json对象设置PHP会话变量,那就和你在不使用JS的情况下直接设置PHP会话变数一样
然而,我想您想用使用JS创建的动态数据来填充会话变量,否则您的问题将毫无意义
你需要理解的是,当你用javascript编写<?php stuff; ?>
时,当它被发送到客户端时,就好像你直接用javascript写东西一样。它完成了,不会改变,当然也不会与服务器通信
例如:var math=<?php echo 10+1;?>;
与您直接在JS中编写var math=11;
相同。当然,您可以使用PHP将PHP内容插入到JS中,但一旦完成并发送到客户端,就可以使用Ajax来改变这一点。
您需要做的是获取json对象并使用Ajax将其发送到PHP
我看到您正在使用Jquery,所以这是关于Ajax的Jquery文档>https://api.jquery.com/jQuery.ajax/
这看起来像:
$.ajax({
type:'post',
url:'path/to/a/PHP/file',
data:{jsonobject:yourstringifyjsonobject}
});
您将在您的"路径/to/PHP/文件"中使用$_POST["jsonobject"]检索该"jsonobject",然后开始:
session_start();//to not forget if you want session variables to work
$_SESSION['whatever']=json_decode($_POST['jsonobject'])
会话变量是用json对象设置的。