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

Javascript 如何读取从php传递到ajax jQuery的多维关联数组?,javascript,php,jquery,arrays,ajax,Javascript,Php,Jquery,Arrays,Ajax,我正在开发一个站点,该站点使用jQuery执行的ajax请求从数据库中检索有关用户位置(名称、lat、lng、地址..)的信息。我已将所有结果提取到关联数组中 $servername = "localhost"; $username = "root"; $password = ""; $dbname = "mydatabase"; $conn = mysql_connect($servername,$username,$password); if(!$conn){ die('Could

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

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

现在如何读取数组

数据
可能以字符串形式返回,您可以使用它将其转换为JSON

function loadmap(){
    $.ajax ({
        url:'loaddata.php',
        dataType:'json',
        success: function(data){
           data = JSON.parse(data);
           alert(""+data[0]);
        },
    })
}
平视:使用
print\u r()
函数打印输出
json\u 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\u 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
        },
    })
}

如果可以,你应该这样做。已在PHP7中删除。了解和使用PDO的语句,只需在PHP文件中设置页眉:<代码>头(“内容类型:应用程序/JSON”);code>jquery自动检测成功函数中的内容类型console.log(数据),以查看实际返回的内容。是否触发警报?需要检查浏览器开发工具网络中的实际请求以查看实际返回的内容,设置数据类型时不应出现状态etcshouldn,如果不可解析,则会触发ajax错误