下面的函数抓取一个 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...
});
最佳答案
您正在使用异步 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
通过发送 ajax 请求到 roomdata.php
然后,一旦 ajax 完成,它就会执行函数 function(result) { ... }
关于php - 加载外部 php 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15444554/