2010-04-03 54 views
0

我有我想在整个一天的特定时间显示的div。我使用PHP工作,但它需要手动刷新浏览器。我希望我的脚本在时间合适时自动加载正确的div。我该如何“ajaxify”我的PHP代码?

我在正确的轨道上吗?也许有一个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>"; 
} 

?> 
+1

这是令人惊讶你的PHP代码实际上工作。 您正在比较两个字符串>运算符,这肯定会产生奇怪的结果。 – arnorhs 2010-04-03 01:25:57

+0

实际上并不奇怪,因为PHP会执行字典比较,从而产生正确的结果。 (“卡车”>“汽车”) – webbiedave 2010-04-03 01:43:02

回答

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. 

这应该做的伎俩

+0

谢谢!那种作品。但现在它添加内容而不是替换内容......它每2秒添加一个新的div ......任何想法? – dot 2010-04-03 01:56:33

+0

*叹* http://www.google.com/search?q=jquery+replace+html你最好给予arnorhs另一点为你做你的工作! – 2010-04-03 04:04:09

+0

@dot替换什么内容? BODY的全部内容?如果是这样的话: $('body')。html($ div); 也许你会想看看: http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery – arnorhs 2010-04-04 14:41:47

0

我会用JQuery timer来每隔一段时间轮询一次;当时间合适时,使用$.load()将新信息加载到页面上的div中。您应该像使用JavaScript一样执行Javascript中的时间检查,以免在客户端和服务器之间不断传输不必要的数据。

+0

谢谢你的回答,jasie!你可以给我一个例子,说明如何将它添加到我的代码中? – dot 2010-04-03 00:34:02

+1

@dot - RTFM !!!!!!! (和一些更多的parantheses使10个字符:D) – 2010-04-03 01:09:20

+0

否则,当然有jQuery Ajaxify:http://plugins.jquery.com/project/Ajaxify – 2010-04-03 01:20:22

0

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

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

(还有其他的方法来做到这一点,但是这是我的看法)

0

作为一个开始,使用jQuery的AJAX调用和一个简单的js定时器。如果页面有一个DIV与 “showithere” 的ID,这willre加载你的PHP页面每隔10分钟:

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

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