刷新div包括sprintf

时间:2016-01-08 18:47:33

标签: javascript php

我有两个php文件。第一个名为index.php,第二个名为data.php。我试图将文件data.php中的内容导入index.php。最初它使用include_once语句给了我一个错误,但我现在可以使用它:

<?php $str = sprintf(include_once ("/www/index1.php"));
   echo $str; ?>

现在,我希望这部分每分钟刷新一次,而无需重新加载整个页面。

我尝试在index.php中插入以下内容:

<!-- Div refresh function -->
<script type="text/javascript">
var auto_refresh = setInterval(
(function () {
    $("#data").load("/www/data.php"); //Load the content into the div
}), 60000);
</script>

<div id="data"><?php $str = sprintf(include_once ("/www/data.php"));
   echo $str; ?></div>

我承认,它看起来有点不对,猜猜是什么,它不起作用。我这是因为它试图在de script-part中加载data.php然后我尝试再次将文件包含在&lt; DIV&GT;语句来。我无法让它发挥作用。

我查看了各种示例,但无法使用sprintf函数找到任何示例。我必须承认我对java,ajax和/或json的了解不是很好。

希望有人可以提供帮助!

2 个答案:

答案 0 :(得分:1)

Javascript是一个前端脚本。如果你想通过ajax加载一些东西,你应该知道它基于js。虽然js基于Web浏览器。因此,请确保您可以先从浏览器访问该网址。

您可以从php访问/www/data.php,但如果您想在js中加载它,请确保可以先从网络访问它。您如何访问index.php

如果您可以通过index.php访问http://xx.com/index.php,然后将$("#data").load("/www/data.php");更改为$("#data").load("http://xx.com/data.php");,您会发现它有效。

更新:根据您的评论,尝试$("#data").load("data.php");

此外,您可以使用开发人员工具对其进行调试。如果js出错,你会看到它。

答案 1 :(得分:1)

你做错了什么。

您需要做什么:

  1. 使用有需要的数据创建文件(例如data.php)。
  2. 创建用于加载数据文件的文件(例如loader.php)。如果你使用的是php(我看到你是),你file_get_contents可以data.php,然后是echo
  3. 在页面上,您要获取数据的位置,请使用以下内容:
  4. JS:

    function loadData() {
        $("#data-container").load("loader.php", function() {
            console.log("Load was performed.");
        });
    }
    
    loadData(); // load first then refreshing every 1 min:
    setInterval(loadData, 60000);
    

    HTML:

    <div id="data-container"></div>
    

    那么,这一切都在这里做什么?

    • 首先,您网页上的脚本会向loader.php;
    • 创建请求
    • 其次,loader.php执行(我希望你的服务器执行php,呵呵?)并获得data.php的内容(因此在这种情况下data.php可以扩展任何文件名; {{ 1}},data.txt等);然后它data.log那个内容;
    • 第三,您网页上的脚本会被echo的内容回复(loader.php},并将其粘贴到您的data.php中。

    这些步骤每1分钟重复一次。

    注意:如果您的上下文中的#data-container不是编程代码(只是一些数据),您只需创建data.php并直接在jQuery脚本中加载它。它不需要任何php-loader文件等。