2012-10-29 39 views
0

我有一個代碼幫助確定哪個鍵被按下。但我很困惑,我不知道如何保存這個鍵 - (按鈕)被按下。這可能嗎?我可以在javascript中使用php代碼在我的mysql數據庫中創建一個新行嗎?確定哪個鍵被按下並保存到數據庫

<script type="text/javascript"> 
    function textsizer(e) { 
     var evtobj = window.event ? event : e; 
     var unicode = evtobj.charCode? evtobj.charCode : evtobj.keyCode; 
     var actualkey = String.fromCharCode(unicode); 
     if (actualkey == "a") { 
      //database code needed 
     } 
    } 
    document.onkeypress = textsizer; 
</script> 
+0

這個問題太廣泛了。請張貼一些代碼並指定您的問題。 –

+0

你能分享一些你的代碼嗎? – Amitd

+0

'' – user1783032

回答

1

你的主要問題是,JavaScript是一種客戶端語言(它運行在用戶的計算機上運行的瀏覽器)和PHP是一個服務器端語言(它運行在Web服務器上)。你不能將兩者混合在一起,因爲它們在不同的時間運行。

您可以做的是使用AJAX將請求從您的JavaScript代碼發送到您的Web服務器,而無需導航離開頁面,只要按下按鍵。您只需發送一個關鍵代碼(或關鍵代碼所代表的字符)作爲請求的參數,然後您的Web服務器就會將該信息保存到數據庫中。

+0

如何使用AJAX代碼是這個連接需要嗎?有沒有鏈接或一些關鍵字? – user1783032

+0

我不能說它的質量,因爲我沒有通讀全部內容,但[本教程](http://code.google.com/edu/ajax/tutorials/ajax-tutorial.html)(來自谷歌,所以可能是體面的)將是一個很好的起點。 –

0

這裏有一些代碼可能會幫助你進行滾球。我選擇使用jQuery,它會使這個更直接。

window.bind('keydown', function(event){ 
    $.ajax(
     { 
      url: 'http://asite.com/script_to_save_codes_to_db.php', 
      data: event.keyCode, 
      type: 'POST', 
      success: function (data){ 
       //have the server respond with a boolean indicating that the keycode was saved to the db or not and decide what to do next 
      } 
     } 
    ); 
}); 

這是如何工作的,在服務器端是蠕蟲,因爲它取決於你的服務器端語言和數據庫選擇的一個整體「諾特爾即可。

對於完全的客戶端解決方案,您可以將keyCodes保存爲json字符串到localStorage或cookie,稍後再做它想做的事情......但這些可以隨時擦除,我不會打電話給他們數據庫。