首页 > 解决方案 > 提取 JSON 数据时控制台中出现未定义错误

问题描述

jQuery代码:

function showData(){
        $.ajax({
            url:"retrieve.php",
            method:"GET",
            datatype: "json",
            success: function(data){
                // console.log(data);
                if(data){
                    x = data;
                }else {
                    x = "";
                }
                // console.log(x);
                for(i = 0; i < x.length; i++){
                    console.log(x[i].name);
                }
            },
        });
    }
    showData();

但在控制台中,我得到:1180 未定义。可能的原因是什么:

在此处输入图像描述

现场链接在这里

如果需要,我准备提供任何额外的信息。

另外,这是retrieve.php→</p>

    include 'dbConnection.php';

$sql = "SELECT * FROM students";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    $data = array();
    while ($row = $result->fetch_assoc()) {
        $data[] = $row;
    }
}


// Returning JSON Format
echo json_encode($data);

标签: jqueryundefined

解决方案


您需要使用 JSON.parse(data) 将数据解析回 javascript 中的 json。您需要这样做,因为您使用 json_encode 在 php 中将 json 编码为 json-string,因此在 javascript 端需要 JSON.pare() 以将其从 json-string 解析回对象表示法。


推荐阅读