2012-03-26 60 views
1

我做了一個計數器,從一個計數到無窮大,如果刷新頁面,它不會停止。
不過,我已經使用AJAX來更新數據庫中的某些DATAS,這是不工作好...
我認爲這個問題是泰德阿賈克斯文件不到風度運行計數器php-js沒有在數據庫中更新

HTML:

<html> 
<head> 
<?php include "config.php"; ?> 
<script type="text/javascript"> 
function createXMLHttpRequest(){ 
    var ua; 
    if(window.XMLHttpRequest) { 
     try { 
      ua = new XMLHttpRequest(); 
     }catch(e) { 
      ua = false; 
     } 
    }else if(window.ActiveXObject) { 
     try{ 
      ua = new ActiveXObject("Microsoft.XMLHTTP"); 
     }catch(e) { 
      ua = false; 
     }} 
return ua;} 
var some = createXMLHttpRequest(c); 
function some1(){ 
    some.open('GET', 'Untitled_4.php?value='+c); 
    some.onreadystatechange = hand; 
} 
function hand() { 
if(some.readyState == 4) 
{  
     some.send(null); 
} 
} 
var c= 
<?php 

    $c= mysql_fetch_array(mysql_query("SELECT * FROM `clock` WHERE `id`=1")); 
    $l=time()-$c['time']; 
    $a=$l/1; 
    $a=floor($a); 
    $a=$a+$c['value']; 
    echo $a; 

?>; 
var t; 
var timer_is_on=0; 

function timedCount() 
{ 
document.getElementById('txt').innerHTML=c; 
c=c+1; 
t=setTimeout("timedCount()",1000); 
} 

function doTimer() 
{ 
if (!timer_is_on) 
    { 
    timer_is_on=1; 
    timedCount(); 
    } 
} 
</script> 
</head> 

<body onunload="some1(c)" onload="doTimer()"> 
<form> 
<div id="txt" ></div> 
</form> 
</body> 
</html> 

AJAX文件:

<?php 
include "config.php"; 
$value=$_GET['value']; 
mysql_query("UPDATE `clock` SET `time`=".time().",`value`= $value WHERE `id` = 1 "); 
echo "1"; 
?> 
+0

Hi @ asafg8,如果您提供有關哪些「工作不正常」的更多信息,將更容易爲您提供幫助。你期望的行爲是什麼?究竟發生了什麼?你得到什麼錯誤?等等。 – Dhaust 2012-03-27 02:25:42

+0

它不運行ajax文件 – asafg8 2012-03-28 16:59:47

回答

0

readystate不會除非您發送XMLHttpRequest更新。 的some1以下版本應該解決您的問題:

function some1(){ 
    some.open('GET', 'Untitled_4.php?value='+c); 
    some.send(null); 
} 

你並不真的需要onreadystatechanged處理程序,因爲你當頁面卸載發送請求並不會有足夠的時間來處理的變化我猜是XMLHttpRequest的狀態。