JSON编码数组,如何在jQuery中使用

时间:2014-09-16 14:01:43

标签: javascript php jquery json

好的我在test.php文件中有这段代码:

<?php
$con = mysqli_connect("localhost", "user", "password", "DB");
if (mysqli_connect_errno()){
    echo "failed to connect:" . mysqli_connect_error();
}

$grab = mysqli_query($con, "SELECT * FROM DB");
$cars = array();
while($row = mysqli_fetch_assoc($grab)){
    array_push($cars, array("id" => $row["Id"], "name" => $row["Name"], "color" => $row["Color"];
}
echo json.encode($cars);

我的HTML页面上有jQuery代码:

$.get("test.php", function($cars){
    $("itemNameLink1").html($cars.name);
    console.log($cars.name);
});

我的下一个问题是如何访问json_encoded数组中的数据并在HTML页面上的jQuery中使用它。现在我只在控制台日志中找回未定义的内容。这只是我的第一次尝试所以并没有因此而感到沮丧。但任何建议都会受到赞赏。

2 个答案:

答案 0 :(得分:2)

这是因为您尝试访问name数组的$cars属性,而不是每辆车的name属性。你应该先遍历你的数组:

for(var car in $cars){
    console.log(car.name);
} 

$cars.forEach(function(e){
    console.log(e);
});

如果您只维护现代浏览器。或者使用$.each方法作为@StartCoding提到。

AND ,同样如@StartCoding所提到的那样,如果你的回复中有一个字符串,则使用$.getJSON代替$.get$.parseJSON($cars)如果您的服务器返回错误的MIME类型[ text / plain ,例如 application / json ],则可能。)

答案 1 :(得分:1)

$.get("test.php", function($cars){
 $.each($.parseJSON($cars), function(i, val){
$("itemNameLink1").html(val.name);
console.log(val.name);
});
});