【发布时间】:2013-04-05 20:36:46
【问题描述】:
我试图通过以下方式将多维 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"]);
echo 工作正常,但 var_dump 返回 NULL
我做错了什么?
这让我解决了问题:
$postedData = $_POST["JSONfullInfoArray"];
$tempData = str_replace("\\", "",$postedData);
$cleanData = json_decode($tempData);
var_dump($cleanData);
我不知道为什么,但是帖子通过一堆“\”字符分隔字符串中的每个变量
按照 Bart 的建议使用 json_last_error() 来解决这个问题,返回 JSON_ERROR_SYNTAX
【问题讨论】:
-
查看
$_POST["JSONfullInfoArray"]的内容。如果无法解析json_code将只返回null。也可以使用json_last_error()来尝试找出问题所在。 -
表单的一点点 HTML 也会有所帮助。使用浏览器的检查器查看请求,你看到了你的期望吗?
-
@Bart 看到上面的编辑,你把我带到了我需要的地方,抛出一个答案,我会接受它:),非常感谢你
-
这里的答案对我有用(而下面的所有其他“答案”都没有!)。
-
谢谢伙计。您的解决方案效果很好!
标签: php javascript arrays json stringify