似乎无法得到我的要求
这里是AJAX /道场我用它来打电话给我的PHP文件,要求从数据库表中的数据正确响应:似乎无法得到我的要求
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();
>
除非这只是一个错字,我觉得你的问题是在该位:
response: function(response, weather_info) {
_refreshWeatherList
},
尝试将其更改为:
load: function(response) {
_refreshWeatherList(response);
},
// or just load: _refreshWeatherList
调试问题像这样,学会使用浏览器的开发工具。在Firefox中,使用工具 - > Web开发人员 - > Web控制台,或在Chrome中单击F12并选择网络选项卡。 (其他浏览器通常有类似的工具)。这些会告诉你任何要求制成,并点击请求将让你看到的响应,头部等
您好,我曾试图运行它负载:但它有同样的问题 – Corey 2013-03-26 19:24:16
我已经改回到加载:,我通过WAMP运行我的程序并使用fi rebug控制台,我没有得到任何错误,但即时通讯也没有让我的数组显示。正如我在我的OP中所提到的,我认为我没有正确地将json数组发送到javascript。 – Corey 2013-03-26 19:28:17
@Corey您是否看到在萤火虫中发出的请求?它是否会返回预期值?如果你在加载函数中加入'console.debug(response);',firebug控制台中是否有任何有趣的东西出现? – Frode 2013-03-26 19:46:19
可以使用的console.log(响应)得到的是什么由PHP发送控制台 – 2013-03-26 10:09:26