2013-05-01 2 views
1

페이지를 새로 고침하지 않고 실시간 게임을 만들기 위해 노력하고 있습니다. 문제는 플레이어가지도 위에 올라있을 때 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'"); 
?> 

주요 ideea의 플레이어가를 통해 어디서나 이동하면지도이다 아약스 갱신합니다 database.I에 새로운 x와 y 값은 아무 버튼이나 JQuery와 코드를 필요 없어요 덧붙여서, 누군가가 나에게이 일을 시키면 아약스가 잘 작동 할 것이라고 생각한다.

P. toX 및 toY는 javascript vars로 변환되므로 php vars로 변환하여 mysql datavase로 업데이트 할 수 있습니다. 누군가 내가이 작업을 수행하도록 도울 수 있다면 정말 고맙겠습니다!

답변

1

먼저이 경우 수행하려는 작업을 정리하십시오. 당신의 묘사에서 나는 그것의 명확한 생각하지 않는다.

아약스 응답을 기반으로 작업을 수행하려는 경우 onSucess이 올바른 옵션이고 onreadystatechange이 아닙니다.

Ajax 응답에 대해 뭔가를하고 싶다면 서버 측에서 필요한 데이터를 보내고 이것을 사용하여 자바 스크립트 코드에서 필요한 작업을 수행해야합니다.

예컨대 ..

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

     } 
     }); 
+0

내가 그것을 테스트 할 수있는 페이지를 새로 고침 할 때 나는 이미 그것을 tryed 그것은 예 –

+0

이전과 같은 빈 값으로 데이터베이스를 업로드합니다. 그게 당신이 제대로 볼 경우 당신의 아약스 요청에 ntng 보내고 있기 때문에 – LPD

관련 문제