【问题标题】:Pass array from javascript to PHP将数组从 javascript 传递给 PHP
【发布时间】:2015-10-12 12:56:21
【问题描述】:

我正在尝试将数组从 javascript 传递给 PHP。 错误消息说:

NULL 警告: 为 foreach() 提供的参数无效 /Library/WebServer/Documents/jsontest/json_receive.php 第 10 行

我的代码有什么问题吗?

<script>
function sendData(){
    var arr= [{  
        "city" : "Brussels",  
        "age" : 25  
    },
    {  
        "city" : "Antwerp",  
        "age" : 40  
    }]; 

    $.ajax({
       type: "POST",
       url: "json_receive.php",
       datatype: 'JSON',
       data: {arr: JSON.stringify(arr)},
       success: function(data){
            console.log("success:",data);
        },
       failure: function(errMsg) {
            console.error("error:",errMsg);
       }
    });
}

<?php
$data = json_decode($_POST["arr"]);
// will echo the JSON.stringified - string:
echo $_POST["arr"];
// will echo the json_decode'd object
var_dump($data);
//traversing the whole object and accessing properties:

print_r($data);
foreach($data as $cityObject){
    echo "City: " . $cityObject->city . ", Age: " . $cityObject->age . "<br/>";
}
?>

【问题讨论】:

  • 所有的回声、转储和打印都向您展示了什么?
  • 试试$data = json_decode($_POST["arr"],true);
  • 我已经在我的服务器上测试了您的代码,因为它按预期工作,没有错误。
  • 你想用这段代码实现什么?看来您正在前后传递相同的数据。另外,正如我之前所说,您的代码没有任何问题
  • 我同意@PedroLobito,你的代码看起来不错。

标签: javascript php arrays


【解决方案1】:

正如我在 cmets 上所说,您的代码看起来 good 并且 有效(我已经测试过了),问题是您期待某些东西打印在页面上,但您的 Ajax success 函数仅使用 控制台

   success: function(data){
        console.log("success:",data);
    }

【讨论】:

  • 控制台显示“Uncaught ReferenceError: $ is not defined”,指的是 $.Ajax ({
  • 您的 jquery 似乎没有正确包含&lt;head&gt; &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"&gt;&lt;/script&gt; &lt;/head&gt;
  • 是的,javascript 文件按预期工作。即使我评论了“控制台”语句,php页面上仍然没有打印任何内容。有没有更好的方法让我在 php 中打印数据?
  • 您需要从 php 中获取结果并将其分配给页面的任何元素,请查看 stackoverflow.com/a/18064824/797495 的示例
  • 我打算在执行完 javascript 后进入带有数据的 php 页面。但是,当我转到 php 页面时,现在所有数据都不存在。我怎样才能做到这一点?你能建议吗?
猜你喜欢
  • 2011-05-16
  • 2012-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多