JeuWeb - Crée ton jeu par navigateur
[Résolu] Récuperer plusieurs infos d'une page appelée en Ajax - 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] Récuperer plusieurs infos d'une page appelée en Ajax (/showthread.php?tid=5451)

Pages : 1 2 3 4 5


RE: Récuperer plusieurs infos d'une page appelée en Ajax - Roworll - 24-05-2011

Normal.
Les infos initiales se chargent aussi via jQuery/JSON dans l'évènement $(document).ready().
Sans JS, pas de données, pas de navigation, rien.
D'ailleurs, vu la recrudescence d'appels asynchrones, JSON et autre push, je me demande s'il existe encore beaucoup de sites qui fonctionnent sans support JS.


RE: Récuperer plusieurs infos d'une page appelée en Ajax - Kassak - 30-05-2011

Les alert de ton petit script Sephi ne se lancent pas...une idée ?

Le script json2.js est bien inclut. Je crée un array sur le fichier .php appelé, et je met le traitement dans le code ajax. Mais les alert ne se lancent pas.

C'est la ligne var data = JSON.parse(xhr.responseText); qui semble poser problème.


RE: Récuperer plusieurs infos d'une page appelée en Ajax - Sephi-Chan - 30-05-2011

Montre nous ton code.
Et xhr.responseText existe bien ?


RE: Récuperer plusieurs infos d'une page appelée en Ajax - Kassak - 30-05-2011

Ouep ouep, j'avais de simple echo avant dans le php, que j'affichais grâce à :

document.getElementById('pm').innerHTML = xhr.responseText;

Et pour le code, je pense que le php n'est pas intéréssant, et voici l'ajax :

Code :
function move(x,y,map){

    get_Xhr();
    xhr.open("POST",'deplacement.php',true);
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    xhr.send("posx="+x+"&posy="+y+"&map="+map);
    xhr.onreadystatechange = function(){
        if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)){

            //document.getElementById('pm').innerHTML = xhr.responseText;
            LoadDiv("map","test.php");
            LoadDiv1("menu_joueur","menu_joueur.php");
            var data = JSON.parse(xhr.responseText);
            alert(data.foo);
            alert(data.bar.join(', '));
            
            <?php  
            if (!empty($_SESSION['message']) && $_SESSION['message'] == 'propa'){
            ?>
                window.location.replace("carte.php");
            <?php
            }
            ?>
        }
    }
}



RE: Récuperer plusieurs infos d'une page appelée en Ajax - Sephi-Chan - 30-05-2011

Je crois que tu n'as pas compris le principe.

Que contient ton responseText actuel ? Pour que cette technique fonctionne, il faut que le responseText contienne une chaîne au format JSON. Il faut donc que ta page distance n'affiche rien d'autre que du JSON, généré par PHP à l'aide de la fonction json_encode.

Par exemple :


$data = array(
'foo' => "Bar",
'bar' => array('Endive', 'Pâté')
);

echo json_encode($data);

Ainsi, ta page contiendra uniquement le contenu suivant :


{"foo":"Bar","bar":["Endive","Pâté"]}

Et du coup, ce sera du JSON valide que tu pourras interpréter côté client et qui te donnera un objet Javascript utilisable.


var data = JSON.parse(xhr.responseText);
alert(data.foo);


Sephi-Chan


RE: Récuperer plusieurs infos d'une page appelée en Ajax - Kassak - 30-05-2011

Mon responsesText contient ceci : {"foo":"Bar","bar":["Endive","Pâté"]}

J'ai bien compris le principe, seulement il n'a pas l'air d'être interprété dans le script.


RE: Récuperer plusieurs infos d'une page appelée en Ajax - niahoo - 30-05-2011

tu peux pas publier ça qu'on teste ?


RE: Récuperer plusieurs infos d'une page appelée en Ajax - Sephi-Chan - 30-05-2011

Montre-nous ce que ta console de debug te donne si tu fais un console.log(data); .
De même, montre nous ce que te retourne JSON.stringify(data); pour voir si tu retombes sur tes pates.


RE: Récuperer plusieurs infos d'une page appelée en Ajax - Kassak - 30-05-2011

Le script s'arrête à la ligne : var data = JSON.parse(xhr.responseText);

Il ne traite pas ce qu'il y a après.

L'erreur de la console :

JSON.parse
onreadystatechange()
var data = JSON.parse(xhr.responseText);


RE: Récuperer plusieurs infos d'une page appelée en Ajax - Sephi-Chan - 30-05-2011

Ce n'est pas une erreur. :/
Ce script n'est-il pas en ligne ?