无法使用JavaScript在JSON解析数组中选择特定元素

时间:2017-03-22 09:13:09

标签: javascript php jquery mysql json

所以我有一个mySQL数据库,我将数据从它提取到我的网站,并想借助JavaScript改变内容。问题是我似乎无法从数据库中选择我的数据中选择特定元素。

以下是我如何提取数据并将其解析为JSON字符串:

while($row = $result->fetch_assoc()) {
    $return_array = array("region" => $row['region'], "capital" => $row['capital'], "surface_area" => $row['surface_area'], "land_area" => $row['land_area'], "water_area" => $row['water_area'], "global_area_rank" => $row['global_area_rank'], "land_boundary" => $row['land_boundary'], "bordering_countries" => $row['bordering_countries'], "coastline" => $row['coastline'], "climate" => $row['climate'], "terrain" => $row['terrain'], "avg_elevation" => $row['avg_elevation'], "highest_elevation" => $row['highest_elevation'], "lowest_elevation" => $row['lowest_elevation'], "natural_resources" => $row['natural_resources'], "land_use" => $row['land_use'], "irrigated_land" => $row['irrigated_land'], "natural_hazards" => $row['natural_hazards']);
}
echo json_encode($return_array);

在我的JavaScript方法中,我调用这个PHP脚本并接收解析的JSON字符串,我在一个div中临时输出:

$.post('ajax/retrieve_data.php', { sel1: sel1, sel2: sel2 }, function(data) {
    var return_array = $.parseJSON(data);
    $('div#test-div').text(return_array.region);
});

然而,输出只显示带有大括号和所有标识符的整个JSON字符串,这意味着return_array.region选择器不起作用。我用索引和各种其他语法尝试了它,但它没有用。互联网上的每个人都使用这种语法来选择特定的元素,但它不知何故不起作用。我可能在那里有一个非常愚蠢的错误,但我感谢每一个帮助。我似乎无法看到错误。

1 个答案:

答案 0 :(得分:0)

我的猜测是你的PHP脚本没有使用正确的Content-Type标头返回数据。确保在PHP脚本中运行以下命令:

header('Content-Type: application/json');

这必须在回应任何事情之前。