我的javascript函数中有一个数组,其字符串值如1,2,3,4 ...等。 我想在PHP的会话中存储这个数组。我搜索了它们,他们说要使用JSON,但我正在使用JSON。
假设我的数组名称是: myArray 我想做这样的事情: $ _ SESSION ['myArray'] = myArray;
有没有这样做?如果可能,请提供一些工作代码示例。
答案 0 :(得分:4)
您的JavaScript正在客户端上运行,您的PHP正在服务器上运行。您需要通过HTTP发送数据。
要将JavaScript数组中的数据传输到PHP会话,您需要:
$_POST
)$_SESSION
答案 1 :(得分:0)
编码 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"}'
答案 2 :(得分:0)
查看json_encode和json_decode。基本上使用json_decode
将javascript数组转换为php数组,json_encode
执行相反的操作。
答案 3 :(得分:0)
这取决于你想要完成的任务。
如果你只是想在PHP中存储来自JavaScript的东西,那么它就会在PHP中为字符串文字分配一个数组的JSON表示。
你想要实际操作数组数据,然后你需要编写代码来解析JavaScript中的数组,将其保存在内存中,然后写出一些包含你的数组的JavaScript代码。此过程称为序列化/反序列化。我在.net中工作,.net框架包含内置类来完成这些任务;我认为您的框架也可能会这样做。
答案 4 :(得分:0)
您应该将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']
取决于您为参数指定的名称。
答案 5 :(得分:-2)
将myArray转换为json:
var s = "[" = myArray.join + "]"
如果myArray包含不需要引号的东西,比如整数或浮点数,那只会起作用。
你可以使用javascript框架来解决在你的脚本中将你的值放入json的问题,不记得名字,但我听说它们是值得的。另一方面,它并不比你上面看到的要困难得多,这取决于你正在处理的是什么样的价值。
将json送到服务器:
document.getElementById("someHiddenElement").value = s;
然后你的服务器端php可以保存会话中的值。