2013-05-18 46 views
1

我一直在使用JS/Node/Socket.IO進行遊戲,並製作了一個小型的多人遊戲,你可以在所有的點上移動。我現在想進一步提高它的水平,並添加一個簡單的登錄系統,這樣我就可以顯示用戶登錄信息,幫助識別不同的玩家。從PHP獲取信息到HTML5中JavaScript遊戲

現在我知道PHP是一種服務器端語言,JavaScript主要是客戶端,但我需要想出辦法做到這一點。我真正要問的是,有誰知道如何從PHP直接獲取信息到JavaScript?

稍後,我可能想要添加均衡並將播放器的級別存儲在數據庫中,並在連接時檢索它們(而不是使用本地存儲)。

非常感謝!

Joel

+2

來自客戶端的AJAX請求和PHP中的json_encode()是你的朋友。除此之外,你將不得不更加具體地瞭解你正在嘗試做什麼。 – Brad

回答

1

您可以使用PHP編寫JavaScript。

例如

$jsVars = array(
     "one" => "hello" 
    , "two" => "yo" 
    ); 

    echo '<script type="text/javascript">'; 
    echo "var phpVars = ".json_encode($jsVars); 
    echo "</script>"; 

或者您可以利用ajax向PHP發出請求並通過JSON傳遞數據。

+0

非常感謝喬治,這樣一個簡單的概念,它只是滑落了我的腦海!有一件事,這是一種有效的做事方式嗎?假設我要使用HTML5技術構建MMORPG,平均每天有50,000名玩家參與,這是否是一種很好的做事方式? – jskidd3

+0

@ jskidd3這實際上取決於您想要傳輸的數據類型。我個人會使用ajax,但如果這不是一個選項,這也會起作用。 –

+0

再次感謝喬治,我必須閱讀ajax! 8-) – jskidd3

1

我normaly做這樣的:

<script type="text/javascript"> 
    var name = '<?php echo $name; ?>'; 
</script> 

當然裏面的PHP文件。我認爲這比使用php創建整個javascript更容易。

1

如果你想在沒有頁面加載的情況下拉入數據。你可以使用AJAX調用一個php腳本來回應你需要的數據。您可以將用戶名保存在會話變量中,只要在php中成功登錄,然後在需要時回顯出來。

一個基本的香草JS例子是;

function getUsername(){ 

    var xmlhttp; 

    if(window.XMLHttpRequest){ 
    xmlhttp=new XMLHttpRequest(); 
    } 

    else{ 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.onreadystatechange=function(){ 

     if(xmlhttp.readyState==4 && xmlhttp.status==200){ 
     var username=xmlhttp.responseText; 
     // code to add username above player here 
     } 

    } 

    xmlhttp.open("GET","get_username.php",true); 
    xmlhttp.send(); 

} 

編輯:沒關係。 :D