我在使用php的json编码时遇到了麻烦,我总是未定义。
PHP:
<?php
header('Content-Type: application/json');
$link = mysqli_connect("localhost", "test", "", "canchas");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$consulta = "SELECT nombre FROM empresa";
$resultado = mysqli_query($link, "$consulta");
$data = array();
while ($row = mysqli_fetch_row($resultado)){
$data[] = $row;
}
mysqli_close($link);
echo json_encode($data);
?>
jQuery的:
$.getJSON("listaCanchas.php", function(data) {
alert(data.nombre);
});
如果我在我的php文件中这样做,它确实有效:
$data['nombre'] = "Pepe";
echo json_encode($data);
答案 0 :(得分:0)
这可以改变这个:
$data = array();
while ($row = mysqli_fetch_row($resultado)){
$data[] = $row;
}
到此:
$data = array();
$i = 0;
while ($row = mysqli_fetch_row($resultado)){
$data['nombre'][$i] = $row[0];
$i++;
}
答案 1 :(得分:0)
mysqli_fetch_row
将结果作为枚举数组返回,即每个属性都是一个数字。相反,您需要一个具有命名属性的关联数组。
您可以使用mysqli_fetch_assoc
代替此操作。这将为您提供JSON中的对象数组,因此您可以更新到console.log(data[0].nombre)
以对其进行测试。 data
将是一个可以在JavaScript中迭代的对象数组。