我的 javascript 函数中有一个数组,其中包含 1、2、3、4 等字符串值。我想将此数组存储在 PHP 的会话中。我搜索了它,他们说要使用 JSON,但我正在了解如何使用 JSON。
假设我的数组名称是:myArray ,我想做这样的事情:$_SESSION['myArray'] = myArray;
反正有这样做吗?如果可能,请提供一些工作代码示例。
我的 javascript 函数中有一个数组,其中包含 1、2、3、4 等字符串值。我想将此数组存储在 PHP 的会话中。我搜索了它,他们说要使用 JSON,但我正在了解如何使用 JSON。
假设我的数组名称是:myArray ,我想做这样的事情:$_SESSION['myArray'] = myArray;
反正有这样做吗?如果可能,请提供一些工作代码示例。
您的 JavaScript 在客户端上运行,您的 PHP 在服务器上运行。您需要通过 HTTP 发送数据。
要将数据从 JavaScript 数组获取到 PHP 会话,您需要:
$_POST
)$_SESSION
将JSON 对象编码为 php(关联)数组的方法是使用:json_encode(JS_OBJECT_WHICH_IS_STRINGIFIED)
. 要解码JSON 对象,请使用json_decode(PHP_ASSOC_ARRAY)
.
例如:
$arr = json_encode('{a:"b"}'); // will give $arr = ['a': 'b']
$js_object = json_decode($arr); // will return '{a:"b"}'
查看 json_encode 和 json_decode。基本上用于json_decode
将 javascript 数组转换为 php 数组并json_encode
做相反的事情。
这取决于你想要完成什么。
如果您只是想在 PHP 中存储 JavaScript 中的某些内容,那么它会为 PHP 中的字符串文字分配数组的 JSON 表示形式。
如果您想要实际操作数组数据,那么您需要编写代码来从 JavaScript 解析数组,将其保存在内存中,然后再写出一些包含您的数组的 JavaScript 代码。这个过程称为序列化/反序列化。我在.net 中工作,.net 框架包含执行这些任务的内置类;我认为您的框架也可能这样做。
您应该将 JSON 编码的 JS 数组传递给 php 文件(通过 ajax 或简单形式),然后使用 json_decode(); 最后将其保存在会话中。所以,首先,在你的 JS 代码上是这样的:
var json_text = JSON.stringify(your_array, null);
然后,传递json_text
给您的 PHP 文件,以便您可以像这样保存它:
$_SESSION['myArray'] = json_decode($_POST['json_string']);
当然$_POST['json_string']
取决于您为参数指定的名称。
将 myArray 转换为 json:
var s = "[" = myArray.join + "]"
这只有在 myArray 包含不需要引号的东西时才有效,比如整数或浮点数。
您可以使用一些 javascript 框架来抽象化将值转换为脚本中的 json 的问题,不记得名称,但我听说它们可能是值得的。另一方面,这并不比您在上面看到的要难很多,具体取决于您正在处理的价值观类型。
获取 json 到服务器:
document.getElementById("someHiddenElement").value = s;
然后您的服务器端php可以将值保存在会话中。