0

这是我用来调用我的 PHP 文件的 ajax/dojo,请求从数据库表中获取数据:

     var _getWeatherInfo = function(){
     dojo.xhrget({

         url: "PHP/weather.php?ntown=" + _ntown,

         handleAs: "json",
         timeout: 5000,

         response: function(response, weather_info) {
            _refreshWeatherList 
         },          
         error: function(error_msg, weather_info) {
             _handleError(error_msg);
         }
     });
 } 

下面的下一段代码是我用来查看返回的 json 数组对象(现在在 javascript 文件中为“weather_info”)并将对象中的数据添加到我的名为“_weather”的 javascript 数组中的代码。

    var _refreshWeatherList = function(weather_info) {
        for (var i = 0; i < weather_info.length; i++) {
        _weather.push(weather_info[i]);
    }
 }

我的问题是:

我认为我实际上并没有从我的 PHP 请求中得到正确的响应,因为当我运行我的应用程序并单击我用来提醒“_weather”数组的按钮时,没有显示任何内容。如何更改我的代码,以便它正确地从我的请求中获得响应。

谢谢你的帮助。

编辑:PHP:

<?php   

$ntown = $_GET['ntown'];

$weather = array();

$query="SELECT * FROM `weather` WHERE `town` = '$ntown'";
$result=mysql_query($query) or die ("Query to get data from table failed: ".mysql_error());

while($row = mysql_fetch_row($result)) {

    $weather = $row;
}

echo json_encode($weather);

mysql_close();

?>

4

2 回答 2

1

除非这只是一个错字,否则我认为您的问题出在这一点:

     response: function(response, weather_info) {
        _refreshWeatherList 
     }, 

尝试将其更改为:

     load: function(response) {
        _refreshWeatherList(response); 
     }, 
     // or just load: _refreshWeatherList

要调试此类问题,请学习使用浏览器的开发工具。在 Firefox 中,使用工具 -> Web 开发人员 -> Web 控制台,或在 Chrome 中单击 F12 并选择网络选项卡。(其他浏览器通常有类似的工具。)这些工具会告诉你正在发出的任何请求,单击请求将允许你查看响应、标头等。

于 2013-03-26T10:47:05.343 回答
0

php代码的问题:

$weather = $row;

应该

$weather[] = $row;
于 2013-03-26T20:46:04.497 回答