2010-04-03 55 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);" >