将json对象存储到php会话中


Store json object into php session?

如何将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进行操作。请考虑到这一点,并验证从前端客户端获得的所有输入。