这是我用来调用我的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”)并将对象中的数据添加到我的javascript数组中,名为“_weather”
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();
&GT;
答案 0 :(得分:1)
除非这只是一个错字,否则我认为你的问题就在于此:
response: function(response, weather_info) {
_refreshWeatherList
},
尝试将其更改为:
load: function(response) {
_refreshWeatherList(response);
},
// or just load: _refreshWeatherList
要调试此类问题,请学习使用浏览器的开发人员工具。在Firefox中,使用工具 - &gt; Web开发人员 - &gt;在Web控制台或Chrome中单击F12并选择“网络”选项卡。 (其他浏览器通常有类似的工具。)这些将告诉您正在发出的任何请求,点击该请求将允许您查看响应,标题等。
答案 1 :(得分:0)
php代码的问题:
$weather = $row;
应该是
$weather[] = $row;