无法将查询响应转换为字符串数组并返回到我的javascript

时间:2012-11-17 01:34:51

标签: php ajax arrays

这看起来很简单,但我对此很陌生,即使经过几个小时的阅读教程和示例,我也无法让它运行起来。我希望我的PHP运行查询,创建一个字符串数组,并将数组返回到调用数据的jQuery ajax()。返回数组应该是存储在数据库中的字符串,看起来像

citiesWithBoroughs = [
    "Dallas, Dallas County, Texas, United States",
    "Fort Worth, Tarrant County, Texas, United States",
    "El Paso, El Paso County, Texas, United States"
];

查询和数组创建代码如下。该查询在MySQL Workbench中工作并返回我想要的数据。我已经对下面的国家和州进行了硬编码,以减少测试时的错误来源。当我进行受控测试时,我将用“mysql_real_escape_string($ countryAbbreviation)”替换它们,等等。

$return_arr=array();

$fetch = mysql_query("SELECT DISTINCT cityWithBoroughsGeonamed FROM places.boroughs
    WHERE countryAbbreviation='US'
    AND stateProvinceAbbreviation='NY'
    ") or die(mysql_error());
while ($row = mysql_fetch_array($fetch)){
    $return_arr[]=$row['cityWithBoroughsGeonamed'];
}
echo $return_arr;

目前,Firebug告诉我键/值数据会传递到PHP服务器,但是我返回了一个空数组。我已经尝试了好几件事,但经过大量的试验后,却得不到任何东西或空洞的阵列。

在JavaScript方面,这里是请求数据的ajax函数,并获取返回的数组。

citiesWithBoroughs = function (request, response){
$.ajax({
    url: "getCitiesWithBoroughs.php",
    data: {stateProvinceAbbreviation: $("#hiddenState").val(),
        countryAbbreviation: $('input[name=country]:checked').val()},
    type: "POST",
    dataType: "text",
    success: function (data){
        response;
    }
});

要做到这一点需要改变什么?请具体说明代码。我对此很陌生。

1 个答案:

答案 0 :(得分:0)

echo将输出一个字符串。 $ return_arr是一个字符串数组,echo $return_arr;只输出Array()。我建议使用echo json_encode($return_arr);并在客户端脚本的成功回调中处理json编码的字符串。