我试图制作一个没有页面刷新的实时游戏。 问题是,当玩家在地图上移动时,我不知道下一步该做什么或如何配置ajax脚本来更新mysql数据库。
这是我试图使用的ajax代码。
//calling ajax to update player location when he move around
function send(url){
var request;
try{
request= new XMLHttpRequest();
} catch (e){
try{
request= new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
request= new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
alert("Your browser broke!");
return false;
}
}
}
request.onreadystatechange = function(){
if(request.readyState == 4){
//I dont know what to add here :-(
}
}
request.open("GET", url, true);
request.send(null);
}
send("update_location.php?newX="+ toX + "&newY=" + toY)
update_location.php
<?php
$new_x=$_GET['newX'];
$new_y=$_GET['newY'];
//echo"$new_x , $new_y";
$update_loc=mysql_query("UPDATE users SET location_x='$new_x' WHERE username='admin'");
?>
主要的想法是,当玩家在地图上移动任何地方时,ajax会将新的x和y值更新到数据库中。我不需要添加任何按钮或jquery代码,我认为如果有人找到我的话,ajax会正常工作这样做。
P.S。 toX和toY是javascript vars我转换为php vars所以我可以将它们更新为mysql datavase。如果有人可以帮我这样做我真的很感激!
答案 0 :(得分:1)
首先要弄清楚你在这种情况下要做什么。从你的描述我不清楚它。
如果您想根据自己的ajax回复做某事,那么 onSucess
是正确的选择,而不是onreadystatechange
。
如果您想对Ajax响应做一些事情,那么您应该从服务器端发送所需的数据,并使用它在您的javascript代码中执行所需的操作。
E.g ..
new Ajax.Request('testurl',{
method: 'post',
parameters: {param1:"A", param2:"B", param3:"C"},
onSuccess: function(response){
//do something here
}
});