从PHP获取信息到HTML5JavaScript游戏
我一直在玩弄JS/Node/Socket.IO,制作了一个多人游戏,在这个游戏中,你们都是点,可以四处移动。现在,我想把它提高一个层次,添加一个简单的登录系统,这样我就可以在用户头部上方显示用户登录的信息,以帮助识别不同的玩家 现在我知道PHP是一种服务器端语言,JavaScript主要是客户端语言,但我需要想出一种方法来做到这一点。我真正想问的是,有人知道如何将信息直接从PHP转换成JavaScript吗 稍后,我可能会想在数据库中添加和存储玩家的级别,并在连接时检索它们(而不是使用本地存储) 非常感谢从PHP获取信息到HTML5JavaScript游戏,php,javascript,html,node.js,socket.io,Php,Javascript,Html,Node.js,Socket.io,我一直在玩弄JS/Node/Socket.IO,制作了一个多人游戏,在这个游戏中,你们都是点,可以四处移动。现在,我想把它提高一个层次,添加一个简单的登录系统,这样我就可以在用户头部上方显示用户登录的信息,以帮助识别不同的玩家 现在我知道PHP是一种服务器端语言,JavaScript主要是客户端语言,但我需要想出一种方法来做到这一点。我真正想问的是,有人知道如何将信息直接从PHP转换成JavaScript吗 稍后,我可能会想在数据库中添加和存储玩家的级别,并在连接时检索它们(而不是使用本地存储)
Joel您可以使用PHP编写JavaScript e、 g
$jsVars=array(
“一”=>“你好”
“两个”=>“哟”
);
回声';
echo“var phpVars=“.json_encode($jsVars);
回声“;
或者您可以使用ajax向PHP发出请求,并通过JSON传递数据。我通常这样做:
<script type="text/javascript">
var name = '<?php echo $name; ?>';
</script>
变量名=“”;
当然是PHP文件的内部。我认为对于服务器来说,这比使用php创建整个javascript更容易。如果您希望在不加载页面的情况下拉入数据。您可以使用AJAX调用一个php脚本,该脚本回显您需要的数据。在php中成功登录后,您可以将用户名存储在会话变量中,然后在需要时回显 一个基本的例子是
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();
}
编辑:没关系来自客户端的AJAX请求和PHP中的json_encode()是您的朋友。除此之外,你还必须更具体地说明你想做什么。非常感谢乔治,这么简单的概念我刚刚忘记了!但有一件事,这是一种有效的做事方式吗?假设我要用HTML5技术构建一个MMORPG,平均每天50000名玩家,这是一个好方法吗?@jskidd3这真的取决于你想要传输的数据类型。我个人会使用ajax,但如果这不是一个选项,这也会起作用。@jskidd3没问题,正如Soriyx所说,我绝对推荐jQuery来处理ajax。Ajax作为一种长期解决方案更易于维护。您希望了解如何在PHP中构建API,以便轻松获取正确的数据。因此,对于用户信息,您可以向url“yoursite.com/api/userinfo”发出请求,它将返回javascript所需的所有用户信息。这就是像Twitter这样的网站允许人们获取推文的方式
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();
}