我有一个多维数组($order)。
echo json_encode($order);生成以下输出,以便您可以看到结构:
[{"rank":5,"day":1},{"rank":4,"day":1},{"rank":1,"day":2},{"rank":3,"day":2},{"rank":2,"day":2}]
我将它存储在本地存储中,我认为这是正确的吗?
var array = "<?php echo(json_encode($order)); ?>";
localStorage.setItem('array', array);
a) 如何从localStorage检索它?
b) 然后我如何在php中使用它?
localStorage存储字符串,而不是结构化对象。如果要存储JSON对象,请使用localStorage["mything"] = JSON.stringify(myvar)
,然后要从localStorage(绑定到各个页面)检索该对象,请在同一页面上使用JSON.parse(localStorage["mything"])
。
不使用JSON.stringify意味着您将存储字符串"[Object-Object]"或类似的内容,因为JavaScript会将您的对象强制转换为字符串,并使其完全错误。
此行:
var array="<?php echo(json_encode($order));?>";
正在生成字符串:
var array="[{"秩":5,"天":1},{"阶":4,"日":1},{;
但是字符串会因为嵌套的引号而中断。
这行应该用单引号写:
var myArray='<?php echo(json_encode($order))>';
现在,您将有一个合适的字符串存储到本地存储中:
localStorage.setItem('myArray',myArray);
然后,您可以使用从本地存储中检索它
myArray=localStorage["myArray"];
但是,正如totymedii所建议的,在php中使用数组的最佳选择是通过ajax调用将其发送到服务器。
-C