下面的函数抓取一个php页面,然后每5秒重新加载一次。来自roomdata.php
页面的唯一内容是带有颜色名称(蓝色,黄色等)的字符串。我希望能够在函数modifyLight(color)
中使用该名称,但它并没有让我这么做。我不知道为什么,但无论我尝试什么,它都不会将变量数据视为字符串,即使我将其澄清为一个。
感谢任何帮助,谢谢!
$(function(){
function loadData()
{
var data = load('roomdata.php');
modifyLight(data);
setTimeout(loadData, 5000); // makes it reload every 5 sec
}
loadData(); // start the process...
});
答案 0 :(得分:0)
您正在使用异步ajad调用。您需要将请求配置为同步。
$.ajax(URL, {async : false});
以这种方式执行下一行将一直执行,直到ajax请求完成。
修改强>
你的功能应该是这样的:
$(function(){
function loadData() {
$.post("roomdata.php", function(result) {
modifyLight(result);
setTiemout(function() { loadData(); }, 5000);
}
}
loadData(); // start the process...
});
您执行此操作的方式的问题是$.load();
仅使用Ajax加载内容并将内容放在$('#yourdiv');
上它不会返回任何内容。您需要在“成功”事件中使用ajax请求。在我给你的代码中,$.post
通过帖子向roomdata.php
发出ajax请求,然后,一旦ajax完成,它就会执行函数function(result) { ... }