2017-01-20 33 views
0

我有一個網站,您需要創建一個帳戶並登錄才能玩遊戲。我有PHP引用MySQL數據庫與UserId,用戶名,名字,姓氏,密碼和分數列。登錄工作正常。然後,你被帶到包含遊戲的html文檔。它有點像餅乾點擊器,你的目標是通過與對象交互獲得最高分。將當前分數寫入MySQL數據庫的PHP代碼

我有一個名爲「點擊」的分數變量,其增長速度相當快。

我有一些JavaScript代碼,讀取;

if (clicks%5==0) { 
    sendScore() 
    } 

這是什麼意思是當點擊可以被5整除時,它激活一個名爲sendScore的函數。它每5次增量激活一次函數,因爲我假設每秒多次向表發送數據會對服務器造成太多的要求。這個函數會把當前玩家的分數寫到名爲「score」的MySQL表格列中,這個行是關於玩家UserID的。 UserID是創建帳戶時生成的數字,以便用戶的帳戶可以輕鬆引用。我可以編寫一段PHP代碼的工作片段,我可以鏈接到sendScore()函數,該函數將玩家的當前分數('clicks'javascript variable)發送到他們的分數MySQL數據庫中的列。

任何幫助,將不勝感激。

謝謝。

注意!!!!

發送信息的請求必須是AJAX請求。也許這就是爲什麼它不起作用。我習慣於寫表單,但表單會刷新頁面。任何人都可以爲這種情況寫一個AJAX請求嗎?

+0

http://stackoverflow.com/questions/1968296/how-to-i-send-data-from-javascript-to-php-and-vice-versa這可能有幫助。換句話說,使用異步JavaScript提交到一個隱藏的輸入字段存儲分數的虛擬表單。但是,請注意,您的玩家可能會看到這一點,並可能試圖欺騙該系統。 – Tiffany

+0

@Tiffany不完全是我正在尋找的...這不是一個mySQL表......不過謝謝! – Caspar

+0

https://www.formget.com/form-submission-using-ajax-php-and-javascript/ – Tiffany

回答

0

您當前的sendScore函數是什麼? 在沒有更多代碼的情況下給出詳細的答案很難,但我會嘗試: 您的sendScore函數將需要發送一個請求到PHP腳本來處理這個請求。您可以使用XMLHttpRequest使用純JavaScript。更多在這裏:http://blog.garstasio.com/you-dont-need-jquery/ajax/。但是,您也可以使用jQuery等框架來完成一些較重的提升。更多關於jQuery和AJAX功能(特別是post-requests)可以在這裏找到:https://api.jquery.com/jQuery.post/

然後你需要一個PHP函數來處理請求。您必須將您的JavaScript函數(執行POST請求)指向此腳本的URL。然後,您可以像處理「正常」表單一樣處理由JavaScript發送的信息。

爲了將您的值從JavaScript轉換爲PHP,反之亦然,可能最容易使用JSON,因爲JavaScript和PHP現在都很好地處理JSON,並且它比XML更容易。

+0

我正在尋找一個AJAX函數,但我似乎無法做到正確...如果您有時間,請介意編寫代碼? – Caspar

+2

雖然我不打算寫完整的代碼,但是如果您現在再發布一些更多的代碼,我可以包含一些更具體的指針和建議,以便您可以實現它,沒問題。 –