在javascript中解析json数组时检查返回值
我是ajax和json的初学者,如果这个问题有点愚蠢,我很抱歉。我正在检索数据(城市id和名称)并将它们放入一个数组中,然后使用json_编码。然后调用getCities函数,但我不确定是否得到了正确的城市。我尝试使用document.write,但没有输出。我怎么知道我得到的是不是正确的?谢谢你的帮助 下面是getCities.php:在javascript中解析json数组时检查返回值,javascript,json,return-value,Javascript,Json,Return Value,我是ajax和json的初学者,如果这个问题有点愚蠢,我很抱歉。我正在检索数据(城市id和名称)并将它们放入一个数组中,然后使用json_编码。然后调用getCities函数,但我不确定是否得到了正确的城市。我尝试使用document.write,但没有输出。我怎么知道我得到的是不是正确的?谢谢你的帮助 下面是getCities.php: $json = array(); $query = "SELECT cityID, cityName FROM city"; $result = mysql_
$json = array();
$query = "SELECT cityID, cityName FROM city";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
$coord = array('id' => $row['cityID'],'city' => $row['cityName']);
array_push($json, $coord);
}
$jsonstring = json_encode($json);
下面是javascript部分:
function getCities(){
var string = $.ajax ({
url: "getCities.php",
dataType: 'json'
}).responseText;
return JSON.parse(string);
}
$(document).ready(function (){
var city = getCities();
while (city.length > 0) {
document.write(city.pop + "<br/>");
}
});
函数getCities(){
var字符串=$.ajax({
url:“getCities.php”,
数据类型:“json”
}).responseText;
返回JSON.parse(字符串);
}
$(文档).ready(函数(){
var city=getCities();
而(城市长度>0){
document.write(city.pop+“”); } });
有两种简单的方法可以做到这一点。首先,我使用Google Chrome(或Firefox)来方便测试。查看文档,您将看到,$.ajax调用也将接受一个success函数。您可以将其放在数据类型下的ajax调用中,如下所示:
var string = $.ajax ({
url: "getCities.php",
dataType: 'json',
success: function(data) {
console.log(data);
}
});
string.done();
注意我是如何更改ajax调用的结尾的。现在的意思是,当这个调用完成时,调用success函数。如果您希望在出现错误时打印出一些内容,还可以在ajax调用中添加一个error函数。当数据返回时,将调用success函数。它将在Chrome调试器的控制台中打印。用谷歌搜索这个词来找出如何显示它,超级简单的东西。您还可以在console.log函数调用上设置一个断点(googlehow-to-do),这样您就可以检查从ajax调用返回的对象
而且,据我所知,console.log在IE中无法工作
玩得开心。函数getCities(回调){
function getCities(callback){
var string = $.ajax ({
url: "getCities.php",
dataType: 'json',
success:callback
});
}
$(document).ready(function (){
getCities(function(data){
console.log(data);
var city = JSON.parse(data);
if (city.length > 0) {
document.write(city.pop + "<br/>");
}
});
});
var字符串=$.ajax({
url:“getCities.php”,
数据类型:“json”,
成功:回调
});
}
$(文档).ready(函数(){
getCities(函数(数据){
控制台日志(数据);
var city=JSON.parse(数据);
如果(城市长度>0){
document.write(city.pop+“
”);
}
});
});
Ajax是自动的,不能使用var city=getCities()代码>。因为当您调用它时,ajax响应还没有到达。您需要传入一个回调函数,当ajax响应到达时,调用该函数以获得响应