这看起来很简单,但我对此很陌生,即使经过几个小时的阅读教程和示例,我也无法让它运行起来。我希望我的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;
}
});
要做到这一点需要改变什么?请具体说明代码。我对此很陌生。
答案 0 :(得分:0)
echo将输出一个字符串。 $ return_arr是一个字符串数组,echo $return_arr;
只输出Array()
。我建议使用echo json_encode($return_arr);
并在客户端脚本的成功回调中处理json编码的字符串。