使用Jquery刷新DIV复制整页

时间:2014-12-22 07:59:20

标签: javascript php jquery

我希望我的PHP页面每隔'n'秒刷新特定的DIV。

代码:

   <body>     
   <div id="refreshData">
   //Functions
   </div>
   <div id="setofDIV">
   //Functions
   </div>
   </body>
           <script type="text/javascript">             
                function show_data()
                   {
                    $('#refreshData').load('main.php);
                   }
               setInterval('show_data()', 5000);
            </script>

但刷新整体在main.php文件中复制两次后。

2 个答案:

答案 0 :(得分:2)

PHP解决方案

要使这项工作,main.php必须只返回div的内容。这意味着它需要检测何时呈现整个页面或只是div的内容。 有几种方法可以做到这一点。

  1. 为AJAX请求创建一个单独的php文件 返回页面的那一部分
  2. 使用HTTP_X_REQUESTED_WITH标题 检测AJAX请求

    if(!empty($ _ SERVER [&#39; HTTP_X_REQUESTED_WITH&#39;])&amp;&amp;      strtolower($ _ SERVER [&#39; HTTP_X_REQUESTED_WITH&#39;])==&#39; xmlhttprequest&#39;) {    //如果你到了这里,这是一个AJAX请求。确保只呈现div的内容。 }

  3. 与之类似。而不是制作单独的PHP文件,添加查询字符串参数,所以页面 会知道它应该只返回那部分。你甚至可以在查询字符串中指定哪个部分,这样就可以在不同的时间间隔内通过同一个php文件加载不同的部分。

  4. JavaScript解决方案

    或者,您可以只获取整个页面,并使用jQuery从中提取div的内容。 load function已经为此目的提供了方便的语法。

      

    .load()方法允许我们指定一部分   要插入的远程文档。这是通过特殊的方式实现的   url参数的语法。如果有一个或多个空格字符   包含在字符串中,第一个字符串后面的字符串部分   假设space是一个确定内容的jQuery选择器   要加载。

    load函数允许在url之后添加一个额外的选择器,匹配选择器的内容从AJAX响应中获取并插入到文档中的指定元素中。出于这个原因,id应该是不同的,否则你将在现有元素中插入一个具有相同id的元素,并且不允许这样做。

    所以你的HTML应该是这样的:

    <div id="refreshDataContainer">
      <div id="refreshData">
      </div>
    </div>
    

    完成更改后,您可以使用以下行完全替换#refreshData

    $('#refreshDataContainer').load('main.php #refreshData');
    

答案 1 :(得分:-1)

请尝试以下方法: -

<div class="result"></div>

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
    function refresh_div() {
        jQuery.ajax({
            url:'YOUR PHP page url',
            type:'POST',
            success:function(results) {
                jQuery(".result").html(results);
            }
        });
    }

    t = setInterval(refresh_div,1000);
</script>

&#39;您的PHP页面网址&#39;应包含您要在主页上显示的内容。