我怎么“ajaxify”我的PHP代码?

时间:2010-04-03 00:27:06

标签: php jquery ajax

我想要在一天中的特定时间显示div。我有它在PHP中工作,但它需要手动刷新浏览器。我想我的脚本在时机成熟时自动加载正确的div。

我是否在正确的轨道上?也许有一个jquery插件可以处理这种令人耳目一新的事情吗?

非常感谢任何帮助......谢谢!

<?php

$time = date("H\:i");

if (($time > "16:59") && ($time < "18:59")) {
    echo "<div>1</div>";
}

elseif (($time > "18:59") && ($time < "20:59")) {
    echo "<div>2</div>"; 
}

elseif (($time > "20:59") && ($time < "22:59")) {
    echo "<div>3</div>";    
}

 else {
    echo "<div id='out'><p>Outside the specified point in time.</p></div>";
}

?>

4 个答案:

答案 0 :(得分:2)

你不需要一个jquery插件来处理刷新,你可以创建一个每隔几分钟/秒检查一次的计时器

@jasie提到计时器是正确的。他提到了jquery计时器,但你也可以使用常规的javascript计时器,就像这样(你标记了jquery,所以我将使用jquery):

var timer = setInterval(function(){
    var hour = (new Date()).getHours();

    if (hour >= 17 && hour < 19) {
        var $div = $('<div>1</div>');
    } else if (hour >= 19 && hour < 21) {
        var $div = $('<div>2</div>');
    } else if (hour >= 21 && hour < 23) {
        var $div = $('<div>3</div>');
    } else {
        var $div = $("<div id='out'><p>Outside the specified point in time.</p></div>");
    }
    $div.appendTo('body');
}, 2000); // checking every 2 seconds.

应该做的伎俩

答案 1 :(得分:0)

我会经常使用JQuery timer进行民意调查;当时机成熟时,使用$.load()将新信息加载到页面上的div中。您应该在Javascript中进行时间检查,这样您就不会经常在客户端和服务器之间传输不必要的数据。

答案 2 :(得分:0)

你的后端应该返回你想要显示的特定html。

您的前端应该只是在后端轮询一个返回此信息的特定网址。

(还有其他方法,但这是我的观点)

答案 3 :(得分:0)

首先,使用jQuery的AJAX调用和一个简单的js计时器。如果页面有一个ID为“showithere”的div,这将每10分钟加载一次PHP页面:

<head>
<script>
​function fn () {
  alert ('now');
  $("#showithere").load ("http://jsbin.com/help/");
}
</script>
</head>

<body onLoad="setTimeout (fn, 600000);" >