繁体   English   中英

jQuery .load 返回空 div(PHP 页面)

[英]jQuery .load returning empty div (PHP page)

我有一个 PHP 控制面板,目前正在开发中。 我需要一个 PHP 文件中的 div 来自动刷新,我遇到了一个 jQuery 解决方案,它可以自动重新加载网站的某些部分。 问题是每次我包含脚本时,当 setInterval 运行时,它只会将 div 变成一个空白元素,而不是加载内容。

我的网站通过使用名为“panel.php”的主 PHP 来工作,它使用“include”加载各种 HTML 文档(.php 文件)。 这些 HTML 文档之一称为“printers.php”。

在 printers.php 中,我想重新加载这个 div:

<div id="tsd"><?php echo time(); ?></div>

因此,在“printers.php”的 head 标签中的代码顶部,我添加了以下代码:

<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script>
    setInterval(function () {
        $( "#tsd" ).load("panel.php #tsd");
    }, 2000);
</script>

现在,当 panel.php 文档加载时,时间戳显示 2 秒,然后消失,div 元素变为空白,其中没有数据。 我不明白为什么它要重新加载一个空白的 div? 任何想法都会有所帮助。

您忘记添加GET参数。 将您的间隔脚本更改为:

$( "#tsd" ).load("panel.php #tsd");

$('#tsd').load('panel.php?page=printers #tsd');

在检查你的panel.php代码后,我注意到这个if语句:

if (!isset($_GET['page'])) 
    header('location: panel.php?page=dashboard');
else 
    include('restricted/sitepages/'.$_GET['page'].'.php');

因此,因为您省略了GET参数page它正在加载仪表板页面而不是打印机页面; 我猜Dashboard页面没有带有 id tsd的 div 。 因此它没有加载任何内容,因为#tsd在加载的响应中不存在。

将 html 代码放在 panel.php 中并在那里进行递归。 所以 panel.php 看起来像这样

<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script>
    $(document).ready( function(){

        refreshClock();
});
    function refreshClock(){
    $('#tsd').load('printers.php', function(){
       setTimeout(refreshClock, 2000);
    });
}
</script>

<div id="tsd"></div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM