javascript - 通过 Ajax 将 Javascript 对象存储在 $_SESSION 中。数组与 JSON 字符串

标签 javascript php ajax json session

我正在发送一个 Ajax 请求,该请求将对象 objectVariable 发送到 PHP 文件:

$.post(url, {action : 'function' , object : objectVariable });

然后,PHP 文件会将 objectVariable 存储在 $_SESSION['objectVariable'] 中(为了清楚起见,我省略了验证):

function function_callback() {

    if(!session_id()) 
        session_start();

    $_SESSION['objectVariable'] = $_POST['objectVariable'];
}

当用户转到网站的其他页面时,$_SESSION['objectVariable'] 会再次通过 Ajax 从 PHP 发送给用户。 在这里,我应该将 $_SESSION['objectVariable'] 中存储的数组编码为 JSON 字符串:

//inside other Axax callback function
echo json_encode($_SESSION['objectVariable']);

这工作正常,但我也可以将 JSON 字符串存储到 $_SESSION['objectVariable'] 中:

function function_callback() {

    if(!session_id()) 
        session_start();

    $_SESSION['objectVariable'] = json_encode($_POST['objectVariable']);
}

之后,只需 echo $_SESSION['objectVariable'] 将其发送到 Javascript 文件。

我想知道什么是更好的方法:在 $_SESSION['objectVariable'] 中存储数组,或存储 JSON 字符串。

有什么建议吗?

最佳答案

在 Javascript/PHP 之间发送数据时,我始终将其编码为 JSON 字符串。它让事情变得更简单。事实上,当您第一次将其发送到服务器时,我会立即 JSON.stringify() 它。

这样您也将始终知道数据的类型。

关于javascript - 通过 Ajax 将 Javascript 对象存储在 $_SESSION 中。数组与 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25547170/

相关文章:

php - 如何使用 jquery 对话框按钮提交表单?

javascript - 字符串 - 元音到大写,字母到字母表中的下一个字母 - Javascript

php - Laravel Eloquent orWhere 查询

php - 如何删除 Zend Framework Controller 中先前添加的脚本文件?

php - 为什么这样做? (php 点符号)

javascript - jquery 看不到 anchor 标签

ajax - 在 AJAX 上发送嵌套的 FormData

php - JavaScript 中的正则表达式与 PHP 中的不同

javascript - 通过 jQuery 用它的索引替换 html 元素

javascript - DOM initMouseEvent clientX, clientY