2011-08-26 28 views
0

我有被點擊一個腳本按鈕時運行的JavaScript函數,通行證JavaScript變量值到PHP文件時,JavaScript函數被調用

//script function  
oyCrosswordFooter.prototype.update = function(){  
     var buf = ""; 

     if (!this.puzz.started){ 
      buf += "Game has not yet started!"; 
     } else { 
      buf += this.puzz.menu.score ; //this is the value I want to pass to a php file  
      if(this.puzz.menu.rank != -1){ 
       buf += this.puzz.menu.rank;   
      } 
     } 

     document.getElementById("oygFooterStatus").innerHTML = buf; 
    } 

我想將「BUF」的值傳遞到另一個PHP文件(比方說a.php),因爲當點擊按鈕時我需要將它存儲在數據庫中。任何人都可以請告訴我如何做到這一點?如果任何人都可以請張貼完整的答案,因爲我是新來的JavaScript。
注意,以上函數是在.js文件(文件格式爲.js文件)

回答

2

你需要使用Ajax,有很多在谷歌Ajax的信息,但我會提供一些輔助代碼:

oyCrosswordFooter.prototype.update = function(){  
    var buf = ""; 

    if (!this.puzz.started){ 
     buf += "Game has not yet started!"; 
    } else { 
     buf += this.puzz.menu.score ; //this is the value I want to pass to a php file  

     if(this.puzz.menu.rank != -1){ 
      buf += this.puzz.menu.rank;   
     } 
    } 

    var ajax; 
    if(XMLHttpRequest) 
     ajax = new XMLHttpRequest(); 
    else 
     ajax = new ActiveXObject("Microsoft.XMLHTTP"); 

    ajax.onreadystatechange = function(){ 
     if(ajax.readyState==4 && ajax.status==200){ 
      alert('buf was sent to the server'); 
     } 
    } 

    ajax.open('GET', 'getbuf.php?buf='+encodeURIComponent(buf), true); 
    ajax.send(); 

    document.getElementById("oygFooterStatus").innerHTML = buf; 
} enter code here 

該腳本通過GET發送BUF到服務器腳本getbuf.php。所以它將在php $_GET陣列中可用。在將其插入數據庫之前仔細清理它。

你可能也想看看使用像jQuery一樣的JS庫。它簡化了大量的Javascript,例如,所有我添加的代碼,可以替代由:

$.get('getbuf.php', {buf: buf}, function(){ 
    alert('buf was sent to the server'); 
}); 
+0

感謝您的幫助。 – Roshanck

0

不知道JavaScript的不應該是太大的問題的這一點。 Get jQuery ready併發布如下:

$.ajax({ 
    type: 'POST', 
    url: '/a.php', 
    data: buf, 
    success: success, 
    dataType: dataType 
}); 
相關問題