2011-08-31 80 views
-1

我想用jquery刷新一個div加載用php生成的時間。Attemp jquery刷新一個div和php

我讀過一些關於jQuery的文章,這些文章已經在這裏,並試圖使用這些來刷新我的div,但我失敗了。

echo '<!DOCTYPE html> 
<html lang="en" dir="ltr"> 
<head> 
<meta charset="utf-8" /> 
<title>' . $title . '</title> 
<link type="text/css" rel="stylesheet" media="all" href="styles/style.css" /> 
<link type="text/css" rel="stylesheet" media="all" href="styles/layout.css" /> 
<link type="text/css" rel="stylesheet" media="all" href="styles/' . $bodycss . '" /> 

</head> 
<body> 

<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript" src="jquery.timers.js"></script> 
<script type="text/javascript"> 

var auto_refresh = setInterval(
function update() { 
    $.get("'.$_SERVER['REQUEST_URI'].'", function(data) { 
    $("#time").html(data); 
    window.setTimeout(update, 500); 
    }); 
} 
</script> 



<div id="container"> 
<header id="header" class="margin5"> 
    <div id="info"> <a href ="home.php"> <img src="images/logo.jpg" alt="Oppasweb" /> </a> </div> 
    <div id="time"><time datetime=' . getTimeForTag() . '>' . getTime() . '</time></div> 


     <div class="clear"></div> 

'; 
} 

javascript應該每隔0.5秒刷新一次div,產生新的時間,但它不這樣做,時間保持不變。

+7

OMG!你回聲整個頁面! – xdazz

+0

每0.5秒一次以及..我會考慮重新考慮整個策略 – rickyduck

+0

有用的調試jQuery和其他JavaScript的東西是forefox螢火蟲。這可以逐步顯示你的功能,並顯示你有錯誤的地方(如下面的答案,一個非關閉的功能)。 – Goez

回答

1

你的setInterval函數是錯誤的(從不關閉)。

你不應該需要它。

function update() { 
    $.get("'.$_SERVER['REQUEST_URI'].'", function(data) { 
    $("#time").html(data); 
    window.setTimeout(function() {update();}, 500); 
    }); 
} 

$(document).ready(function() { 
    update(); 
}); 

而且,隨着循環所以很多時候,你可能要ID您的通話(與我++),並追加時代到div,而不是替換HTML完整的。您可能想要查看setTimeout和setInterval之間的區別。

注意:true,完整的html作爲字符串是不好的做法。但是出於測試目的,這並不重要(imo)

+0

你會怎麼做呢(HTML部分):)? –