我正在开发一个站点,该站点使用jQuery执行的ajax请求从数据库中检索有关用户位置(name,lat,lng,address ..)的信息。我已将所有结果提取到关联数组
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "mydatabase";
$conn = mysql_connect($servername,$username,$password);
if(!$conn){
die('Could not connect' .mysql_error());
}
mysql_select_db($dbname);
$query = " SELECT * FROM userevent ";
$result = mysql_query($query);
$a = array();
while($row = mysql_fetch_array($result,MYSQL_ASSOC)){
array_push($a,$row);
}
echo json_encode($a);
mysql_close($conn);
获取后我得到这种类型的数组:
Array
(
[0] => Array
(
[ID] => 3823
[name] => Erik
[lat] => 63.2994
[lng] => 23.7497
[title] => b
)
[1] => Array
(
[ID] => 3824
[name] => George
[lat] => 43.2994
[lng] => 13.4494
[title] => a
)
)
在我的.js文件中我有这个:
function loadmap(){
$.ajax ({
url:'loaddata.php',
dataType:'json',
success: function(data){
alert(""+data[0]); //DOESN'T WORK ???????
},
})
}
我现在如何阅读我的阵列?
答案 0 :(得分:1)
data
可能会以字符串形式返回,您可以使用JSON.parse将其转换为JSON。
function loadmap(){
$.ajax ({
url:'loaddata.php',
dataType:'json',
success: function(data){
data = JSON.parse(data);
alert(""+data[0]);
},
})
}
答案 1 :(得分:1)
抬头:使用
print_r()
功能打印输出json_encode()
php预定义函数,而不是本机echo
。
PHP更新代码
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "mydatabase";
$conn = mysql_connect($servername,$username,$password);
if(!$conn){
die('Could not connect' .mysql_error());
}
mysql_select_db($dbname);
$query = " SELECT * FROM userevent ";
$result = mysql_query($query);
$a = array();
while($row = mysql_fetch_array($result,MYSQL_ASSOC)){
array_push($a,$row);
}
print_r(json_encode($a));
mysql_close($conn);
如果您已经在使用json_encode
功能,则不需要在客户端解析数组。您可以将数组值作为普通javascript访问
使用点(。)运算符的对象。
Javascript更新了代码段
function loadmap(){
$.ajax ({
url:'loaddata.php',
dataType:'json',
success: function(data){
alert(data.ID); //this one will print the value of ID key in the array
},
})
}