好的我在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中使用它。现在我只在控制台日志中找回未定义的内容。这只是我的第一次尝试所以并没有因此而感到沮丧。但任何建议都会受到赞赏。
答案 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);
});
});