JeuWeb - Crée ton jeu par navigateur
[résolu pour le moment :P] Ajax, aide svp - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [résolu pour le moment :P] Ajax, aide svp (/showthread.php?tid=1953)

Pages : 1 2 3 4 5 6


RE: Ajax, aide svp - Sephi-Chan - 03-11-2007

Bon, le problème c'est que tu n'as rien callé à l'ordre des choses. Regarde bien la fonction Javascript :

Code PHP :
<?php 
function bouger(x, y){
var
xml;
if(
window.XMLHttpRequest){ xml = new XMLHttpRequest(); }
else { if(
window.ActiveXObject){ xml = new ActiveXObject('Microsoft.XMLHTTP'); } }
else {
alert('JavaScript : votre navigateur ne supporte pas les objets XMLHttpRequest...'); }

xml.open('POST', '../pages/requetes_ajax.php', true);
xml.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
var
data = "data_x=" + x + "&data_y=" + y;

xml.onreadystatechange = function(){
if(
xml.readyState == 4 && xml.status == 200){
alert(xml.responseText);
}
}


Sephi-Chan


RE: Ajax, aide svp - V1nc3 - 03-11-2007

Donc a chaque fois que je vais avoir affaire a une fonction comme bouger dans mon code, faudra que je remette tous le protocole de connexion ajax?


RE: Ajax, aide svp - Sephi-Chan - 03-11-2007

Oui, d'où l'idée de faire une fonction qui retourne un nouvel objet XMLHttpRequest, par exemple :

Code PHP :
<?php 
function getXMLHttpRequest(){
var
xhr;
if(
window.XMLHttpRequest){ xhr = new XMLHttpRequest(); }
else { if(
window.ActiveXObject){ xhr = new ActiveXObject('Microsoft.XMLHTTP'); } }
else {
alert('JavaScript : votre navigateur ne supporte pas les objets XMLHttpRequest...'); }
return
xhr;
}

Ainsi, ta fonction bouger devient :

Code PHP :
<?php 
function bouger(x, y){
xml = getXMLHttpRequest()

xml.open('POST', '../pages/requetes_ajax.php', true);
xml.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
var
data = "data_x=" + x + "&data_y=" + y;

xml.onreadystatechange = function(){
if(
xml.readyState == 4 && xml.status == 200){
alert(xml.responseText);
}
}

Le reste viendra selon ta curiosité. Il n'y a pas grand chose à savoir sur Ajax, c'est simple à utiliser et parfois bien pratique, d'autant plus quand tu utilises XML.


Sephi-Chan


RE: Ajax, aide svp - V1nc3 - 03-11-2007

J'ai toujours un problème avec ce code qui ne veut décidément pas s'éxécuter -_-

ajax.js :
Code PHP :
<?php 
function getXMLHttpRequest()
{
var
xhr;
if(
window.XMLHttpRequest)
xhr = new XMLHttpRequest();
else if(
window.ActiveXObject)
xhr = new ActiveXObject('Microsoft.XMLHTTP');
else
alert('JavaScript : Votre navigateur ne supporte pas les objets XMLHttpRequest...');
return
xhr;
}

function
bouger(x, y)
{
xml = getXMLHttpRequest();

xml.open('POST', 'requetes_ajax.php', true);
xml.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
var
data = "data_x=" +x+ "&data_y=" +y;

xml.onreadystatechange = function()
{
if(
xml.readyState == 4 && xml.status == 200)
alert(xml.responseText);
}
}

requetes_ajax.php :

Code PHP :
<?php
if (isset ($_POST['data_x']) && isset ($_POST['data_y']))
{
//Sécurisation des variables
$data_x = sec_var($_POST['data_x']);
$data_y = sec_var($_POST['data_y']);

//Récupération d'infos sur le perso
$infos_perso = req_infos_perso($_SESSION['perso_actu']);
$id_perso = $infos_perso['id_perso'];
$coord_x = $infos_perso['coord_x'];
$coord_y = $infos_perso['coord_y'];

//On créé les coordonnées d'arrivée
$data_x = $coord_x + $data_x;
$data_y = $coord_y + $data_y;

if (!
test_case_persos($data_x, $data_y) && !test_case_villes($data_x, $data_y)) //On vérifie que la place est libre
mysql_query("UPDATE persos_cda SET coord_x ='$data_x' AND coord_y ='$data_y' WHERE id_perso ='$id_perso'");
}
echo
'test';
?>

appel :

Code PHP :
<?php 
<script type =\"text/javascript\" src =\"javascript/ajax.js\"></script>
<td><a class =\"n_o\" href =\"javascript:bouger('-1','1')\"> </a></td>

J'arrive pas a voir ce qui cloche...
Pourtant je crois avoir tous mis dans l'ordre et tous Confused


RE: Ajax, aide svp - Plume - 03-11-2007

Pourquoi tu échappes les " ? >.<


RE: Ajax, aide svp - V1nc3 - 03-11-2007

Perce que je fais un truc de ce genre :

$code_page .="<script type =\"text/javascript\" src =\"javascript/ajax.js\"></script>";

Je mets tous mon code dans la variable, et ensuite je fais un unique echo, mais c'est pas le problème Confused
Manquerai pas un xml.send(data); quelque part o.O?


RE: Ajax, aide svp - Plume - 03-11-2007

J'm'en doutais. Dans ce cas, pourquoi tu n'échappes pas le premier " ? Wink


RE: Ajax, aide svp - V1nc3 - 03-11-2007

C'est au copier coller qu'il le prends pas, je sais pas pourquoi, mais dans mon code php et le code source html a l'affichage après il me le mets -_-


RE: Ajax, aide svp - Plume - 03-11-2007

Bon, j'vais tâcher de t'aider du mieux que je peux, mais je connais pas le JavaScript alors ça va d'abord commencer par du pistage de bugs pour essayer de localiser la source de ton problème Smile

Ton echo 'test'; fonctionne, je suppose. Essaie de le mettre dans ta première boucle if pour voir si on y entre déjà Wink


RE: Ajax, aide svp - V1nc3 - 03-11-2007

Non justement, le echo ne fonctionne pas -_-'''
C'est bien la le problème Confused