如何读取多维关联数组从php传递到ajax jQuery


how to read a muiltidimensional associative array passed from php to ajax jQuery?

我正在开发一个网站,检索有关用户位置信息(名称,地址,lng,地址..)从数据库与ajax请求执行jQuery。我已经将所有结果提取到关联数组

中。
$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 ???????
        },
    })
}

我现在如何读取我的数组?

data可能作为字符串返回,您可以使用JSON。解析将其转换为JSON。

function loadmap(){
    $.ajax ({
        url:'loaddata.php',
        dataType:'json',
        success: function(data){
           data = JSON.parse(data);
           alert(""+data[0]);
        },
    })
}

抬头:使用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一样访问数组值

更新后的代码片段
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
        },
    })
}