加载外部php页面

时间:2013-03-16 01:27:00

标签: php jquery ajax loading external

下面的函数抓取一个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...
});

1 个答案:

答案 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) { ... }