1

我试图制作一个没有页面刷新的实时游戏。问题是当玩家在地图上移动时,我不知道下一步该做什么或如何配置 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)

更新位置.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 会正常工作。

PS toX 和 toY 是我转换为 php vars 的 javascript vars,因此我可以将它们更新为 mysql datavase。如果有人可以帮助我这样做,我将非常感激!

4

1 回答 1

1

首先理清在这种情况下您要做什么。从你的描述来看,我觉得不是很清楚。

如果您想根据您的 ajax 响应做某事,那么onSucess是正确的选择,而不是onreadystatechange.

如果您想对 Ajax 响应做一些事情,那么您应该从服务器端发送所需的数据并使用它在您的 javascript 代码中执行所需的操作。

例如。

new Ajax.Request('testurl',{
            method: 'post',
            parameters: {param1:"A", param2:"B", param3:"C"},
            onSuccess: function(response){
            //do something here

        }
        });
于 2013-05-01T09:30:20.663 回答