1

我有这样的php代码:

<div>
<?php if($link AND $access AND !$timer_expired): ?>
<font color="green">Status: Unlocked - You have successfully unlocked "<?php echo htmlspecialchars($link['link_title']);?>", the website is listed below.</font>
<?php else:?>
<font color="red"> Status : Locked - To Unlock "<?php echo htmlspecialchars($link['link_title']);?>" Please Complete the Survey.</font>
<?php endif;?> 
</div>

我需要让它自行重新加载,直到状态为“解锁”然后停止加载

有很多帖子谈论重新加载 php 文件..但我不需要那个..我只想重新加载 php 代码

请问有什么想法吗?

4

3 回答 3

1

首先,如果是PHP页面,最好在PHP端控制状态。独立于客户端。对于“锁定”状态页面,设置 HTML 元标题:

<meta http-equiv="refresh" content="5">

对于“解锁”状态,什么也不做。

就这样!

于 2013-03-29T05:25:58.270 回答
0

你想使用这个函数并像这样调用ajax。

<script type="text/javascript">

 jQuery(document).ready(function() {

  setInterval(function(){

   jQuery("#divid").load('http://example.php',
    function(response, status, xhr) {

        if (status == "error") {
        jQuery("#divid").html(msg + xhr.status + " " + xhr.statusText);
        }
    });
  }, 500);

 });
</script>

您还应用条件来检查响应是“锁定”还是“解锁”。

希望对您有所帮助。

于 2013-03-29T05:51:08.653 回答
0

您的要求并不完全清楚,但您需要记住 PHP 代码是在服务器上执行的。AJAX 在客户端的浏览器中执行。因此,实现您想要的方法是使用 AJAX 在客户端浏览器中不断重新加载 HTML,您可以从服务器上的 PHP 脚本中请求。

HTML:

<div id="myDiv">AJAX response will load here</div>

Javascript:

function loadPage(your_page)
{
    var xmlhttp;
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
         // This javascript executes when you receive the HTML from your AJAX request
        return xmlhttp.responseText;
        }
      }
    xmlhttp.open("GET",your_page,true);
    xmlhttp.send();

}

var repeat = window.setInterval(checkResponse,3000);

function checkResponse()
{
   var response = loadPage('your_php_script.php');
   if(response.indexOf('Unlocked') !== -1)
       window.clearInterval(repeat);
}
于 2013-03-29T05:24:24.780 回答