-1

我不确定我是否正确地标记了我的标题,但有人告诉我下面的代码不起作用,因为浏览器窗口在提交更新内容的表单时永远不会重新加载(它位于影子框内)。

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

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

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

<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>

有什么建议么?

4

2 回答 2

-1

为什么要使用 javascript 重新加载页面。您可以使用标头位置在 php 中执行此操作:

<?php if(isset($_SESSION['contentupdated'])) { unset($_SESSION['contentupdated']); header('Location:yourpage.php');die(); } ?>
于 2013-03-22T17:26:45.973 回答
-1

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

使用 PHP 进行长轮询: 如何实现基本的“长轮询”?

PHP 和 Comet:在 PHP 中使用 comet?

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

使用NodeJS等其他技术的非 PHP 解决方案。

更新:我添加这个的原因是 OP 似乎缺乏一些词汇来有效地搜索和回答他的问题。

于 2013-03-22T17:27:41.587 回答