2012-04-25 52 views
0

我想把它放到ajax中,所以每次點擊jQuery中的按鈕時,它都會創建一個php會話。有沒有可能使用這個?這個javascript函數可以放入ajax嗎?如何?

var milisec=00; 
var seconds=60; 
function display(){ 
    if (milisec<=0){ 
     milisec=9 
     seconds-=1 
    } 
    if (seconds<=-1){ 
     milisec=0 
     seconds+=1 
    } 
    else { 
     milisec-=1 
     document.getElementById('counter').innerHTML= seconds+":"+"0"+milisec+"s"; 
     setTimeout(display,100) 
    } 
    if (seconds < 10) { 
     document.getElementById('counter').innerHTML= "0"+seconds+":"+"0"+milisec+"s"; 
    } 
} 
display() 

我需要發佈他們花費的時間來使用ajax使用Php會話進入下一頁。

+1

你想發送給服務器的是什麼? – Joseph 2012-04-25 09:30:18

+3

請使用'setTimeout(display,100)'而不是'setTimeout('display()',100)' - 隱式的'eval()'是邪惡的...... – DaveRandom 2012-04-25 09:31:25

+0

爲什麼你需要ajax?只有jQuery纔夠用。 – 2012-04-25 09:33:31

回答

1
var seconds = 60; 
    var milisec = 0; 
    var stop_counter = false;  

    function display(){ 

    if(milisec == 0)  
     seconds = seconds - 1; 

    milisec = milisec - 1; 

    if(milisec == -1) 
     milisec = 10;   

    $('#counter').html((seconds < 10 ? "0" : "") + seconds + ":0" +milisec+ "s");   

    if((seconds == 0 && milisec == 0 && stop_counter == true) == false) 
     setTimeout(function(){ display(); }, 100); 

    }  


    $(document).ready(function(){ 

    display(); 

    $('#button').click(function(){ 

     $.post('myphpfile.php', {time : $('#counter').text()}, function(data){ 

     alert('Data from myphpfile.php: ' + data); 
     stop_counter = true; //stop counter now 

     }); 

    }); 

    }); 

myphpfile.php

echo 'you clicked button when counter was ' . $_POST['time']; 
//you can do any php stuff here 

這段代碼應該做你想要什麼,但我沒有測試它。

函數$ .post()從jQuery library將傳遞您的數據到PHP腳本,也可以檢索一些數據,您可以顯示在您的網站或其他東西。

順便說一句,一秒有1000毫秒,而不是100

對不起,我的英語

+0

而不是在沒有數據時循環,我會使用在AJAX請求被觸發後觸發的回調。在該函數中調用'display()'將允許您在已有數據可用的情況下使用超時和檢測來刪除整個代碼。 – YMMD 2012-04-25 10:17:45

+0

那麼你將如何顯示用戶計數器呢? – miro 2012-04-25 10:41:46

+0

對不起,我錯過了他想要一個櫃檯的部分。無論如何,我不知道如果在短時間內做某件事情時顯示計數器是否有用。如果他仍然想要他的櫃檯,那麼我的評論是無用的 - 對不起。 :-) – YMMD 2012-04-25 10:50:37

0

是的,你可以通過

$(document).ready(function(){ 
    $('#button').click(function(){ 
     $.post('session_file.php', {secs : seconds,millisecs:milisec}, function(data){ 
     }); 
    }); 
}); 
合格 "seconds" and "milisec"值在Ajax調用做到這一點

因此,在session_file.php中,您可以在會話中寫入secs and millisecs變量的值

相關問題