如何更改以下PHP代码,以便它“轮询”站点以获取更新的变量

时间:2013-03-22 17:21:40

标签: php shadowbox

我不确定我是否正确标记了我的标题,但我被告知下面的代码无效,因为浏览器窗口在提交更新内容的表单(它位于影子框内)时从不重新加载。 / p>

<?php 
    if(isset($_SESSION['contentupdated'])) { 
       unset($_SESSION['contentupdated']); 
       echo 'window.location.reload();'; 
    } 
?>

如何根据上述“轮询”网站的代码编写PHP代码,以查看变量$_SESSION['contentupdated']是否已设置?下面,我将粘贴我试图使用的完整影子箱代码。更新的代码将替换JavaScript代码中的PHP代码。这样关闭影子框后,网站将轮询网站以查看是否有更新的代码(这至少是我的目标)。

我被告知我必须对网站进行投票以检查更新,但我搜索了Google并且无法找到解决方案,因为所有结果都显示为“如何创建网站投票”。

<script>
    Shadowbox.init({ 
        onOpen: onShOpen, 
        onClose: onShClose, 
    }); 

    function onShOpen() { 
        document.body.style.overflow = "hidden"; 
        return true; 
    } 

    function onShClose() { 
        document.body.style.overflow = "auto"; 
        <?php 
            if(isset($_SESSION['contentupdated'])) {
                unset($_SESSION['contentupdated']); 
                echo 'window.location.reload();'; 
            } 
        ?>
        return true; 
    }
</script>

有什么建议吗?

2 个答案:

答案 0 :(得分:-1)

为什么使用javascript重新加载页面。你可以使用标题位置在php中完成它:

<?php if(isset($_SESSION['contentupdated'])) { unset($_SESSION['contentupdated']); header('Location:yourpage.php');die(); } ?>

答案 1 :(得分:-1)

只列出想到的事情,不是一个好的答案......

使用PHP进行长轮询:How do I implement basic "Long Polling"?

PHP和Comet:Using comet with PHP?

HTML5网络套接字:http://www.html5rocks.com/en/tutorials/websockets/basics/

使用其他技术的非PHP解决方案,例如NodeJS

更新:我添加的原因是OP似乎缺乏有效搜索和回答问题的词汇。