我试图通过以下方式将多维度Javascript数组传递到网站上的另一页:
在数组上使用JSON.stringify
将结果值分配给输入字段
将该字段发布到第二页
在发布的值上使用json_decode
然后使用var_dump进行测试
(直接回显已发布的变量只是看它是否通过了)
第一页的Javascript:
var JSONstr = JSON.stringify(fullInfoArray); document.getElementById('JSONfullInfoArray').value= JSONstr;
第二页的php:
$data = json_decode($_POST["JSONfullInfoArray"]); var_dump($data); echo($_POST["JSONfullInfoArray"]);
回声工作正常,但var_dump返回NULL
我做错了什么?
这使我得到解决:
$postedData = $_POST["JSONfullInfoArray"]; $tempData = str_replace("\\", "",$postedData); $cleanData = json_decode($tempData); var_dump($cleanData);
我不确定为什么,但是帖子中出现了一堆“ \”字符,将字符串中的每个变量分开
用json_last_error()归还Bart的想法弄清楚了JSON_ERROR_SYNTAX
json_last_error()
JSON_ERROR_SYNTAX
您需要检查中的内容$_POST["JSONfullInfoArray"]。如果某些内容无法解析,json_decode则会返回null。这不是很有帮助,因此null返回时应检查json_last_error()以获取更多有关发生问题的信息。
$_POST["JSONfullInfoArray"]
json_decode
null