我试图通过以下方式将多维度Javascript数组传递到网站上的另一页:

在数组上使用JSON.stringify的

  • 将结果值分配给输入字段
  • 将该字段发布到第二页
  • 在发布的值上使用json_decode进行
  • 然后var_dump测试
  • (直接回显已发布的变量,只是看它是否通过了
    完全)

  • 第1页上的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_decode,则仅返回null。这不是很有帮助,所以当返回null时,您应该检查json_last_error()以获取有关发生问题的更多信息。

    10-05 18:32