IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Affichage de la réponse AJAX


Sujet :

AJAX

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 43
    Points : 18
    Points
    18
    Par défaut [AJAX] Affichage de la réponse AJAX
    Bonjour à tous,

    J'ai besoin d'un coup de pouce parce que je n'arrive pas à faire ce que je veux faire.

    Je voudrais pouvoir afficher "ok" dans ma div. ("ok" est pour le test, je mettrais une requete par la suite qui affichera autre chose).
    Le problème c'est que ça ne fait rien et ça ne m'affiche aucune erreur, donc je sais pas ce qui manque ou ce que je dois faire :

    La fonction se déclenche sur un onclick :

    Page membre.php
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="comment"><img src="/chien/image/template/comment.png" alt="écrire un commentaire"/> <a href="" onclick="chargerComment();" >Commenter</a></div>

    ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function chargerComment(){ 				
    	var xhr= null;
    	if(window.XMLHttpRequest){xhr=new XMLHttpRequest();}
    	else if(window.ActiveXObject){xhr=new ActiveXObject("Microsoft.XMLHTTP");}
    	var id_membre = '<?php echo $affStat['id_membre']; ?>';
    	var id_statut = '<?php echo $affStat['id']; ?>';
    	var value1 = encodeURIComponent(id_membre),
    	value2 = encodeURIComponent(id_statut);
    	xhr.open('GET', 'http://localhost/chien/commentaire_traitement.php?param1=' + value1 + '&param2=' + value2, false);				
    	obj=document.getElementById('listcommentaire');
    	obj.innerHTML =xhr.responseText;					
    	xhr.send(null); 
    };
    Le div sur la page membre.php qui attend la réposne :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="listcommentaire" style="border:1px solid; height:20px;"></div>

    Et mon "script" php sur la page commentaire_traitement.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(isset($_GET['param1']) && isset($_GET['param2'])){
    	echo 'ok';
    }

    S'il vous plait, pourriez-vous m'aider?

    Merci

    Edit : j'ai rajouté ça dans ma function ajax, mais rien ne fonction, même pas le alert et toujours aucune erreur d'affiché ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    xhr.onreadystatechange = function(){
    	if (xhr.readyState==4 && xhr.status==200){
    		alert(xhr.responseText);
    	}
    }

  2. #2
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    Bon, pour ceux qui me suivent. Il y a du mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function chargerComment(){ 
    	if(window.XMLHttpRequest){xhr=new XMLHttpRequest();}
    	else if(window.ActiveXObject){xhr=new ActiveXObject("Microsoft.XMLHTTP");}
    	var id_membre = '<?php echo $affStat['id_membre']; ?>';
    	var id_statut = '<?php echo $affStat['id']; ?>';
    	var value1 = encodeURIComponent(id_membre),
    	value2 = encodeURIComponent(id_statut);
    	xhr.open('GET', 'http://localhost/chien/commentaire_traitement.php?param1=' + value1 + '&param2=' + value2, false);				
    	xhr.send(null); 				
    	if (xhr.readyState==4 && xhr.status==200){
    		obj=document.getElementById('listcommentaire');
    		obj.innerHTML =xhr.responseText;	
    		// alert(xhr.responseText);
    	}else{
    		alert('erreur');
    	}
    };
    Avec ça, mon ok s'affiche dans mon div, et disparaît aussitôt. Une idée ? (on dirait aussi que l'ensemble de la page se recharge).

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Dans le code HTML affiché dans ta page, à quoi correspondent les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var id_membre = '<?php echo $affStat['id_membre']; ?>';
    var id_statut = '<?php echo $affStat['id']; ?>';
    ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    Merci Bovino pour ta réponse. J'ai trouvé pourquoi mon ok disparaissait. A cause du onclick . En fait il fallait y rajouter return false; .
    Donc maintenant le ok s'affiche.
    Problème résolu pour ça. Je laisse quand même le topic ouvert car mon but et d'y mettre une requete sql. Si je rencontre d'autres problème je viendrais vous en faire part. Sinon je mettrais l'ensemble du code et le topic en résolu.

    Pour te répondre ces variables correspondent à des valeurs entière que j'ai besoin (et qui existent - vérifié) pour ma requête

  5. #5
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    Bon donc autre problème.

    J'ai modifier mon script php avec :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(isset($_GET['param1']) && isset($_GET['param2'])){
    	$idmembre = $_GET['param1'];
    	$idstatut = $_GET['param2'];
    	echo 'ok - '.$idmembre.'-'.$idstatut;
    }

    Tout à l'heure le 'ok' était bien envoyé. Donc étape par étape j'essaie de voir s'il peut me renvoyer les valeurs contenue dans une variable. Et la réponse est .. non.

    Je reçoit ok - -

    Bien entendu j'ai vérifié que $idmembre et $idstatut contenaient bien les valeurs et c'est good.

    Comme je veux passer le résultat d'une requete celle-ci sera stocké dans une variable.

    Est-ce que vous pouvez m'expliquer pourquoi je reçoit que ok - - ? Au lieu de ok -63 -5 par exemple ?

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    et qui existent - vérifié
    Apparemment, tu as mal vérifié...

    Il faudrait :
    • que tu regardes le code source généré dans le navigateur pour voir ce qu'il contient réellement (et qui est souvent dans ce genre de cas, différent de ce que tu crois qu'il contient) ;
    • utiliser une console de débogage pour regarder ce qu'envoie et reçoit ta requête.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    Je ne comprend pas ta réponses.

    Quand je vais sur ma page membre.php ou s'affiche le "ok" dans mon div et je regarde le code source généré, j'ai bien "ok - -" dans mon div.
    La console de débugage firebug ne me retourne aucune erreur

    et quand je vais manuellement dans l'url en get avec les paramètre, j'ai bien "ok - 63-5 " qui sort.
    Pourquoi il ne me les retourne pas?
    Il y a autre chose que je dois vérifier?

    Merci de ton aide

  8. #8
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    Bon, je crois que tu avais trouvé dès le début ce qui $@&! ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var id_membre = '<?php echo $affStat['id_membre']; ?>';
    var id_statut = '<?php echo $affStat['id']; ?>';
    Elles sont vides ..Donc ça ne pouvait rien me retourné. Mes vérifications sur une page comme sur l'autres était mal faite. Dans le firebug je regardais la console mais en faite c'est les échanges réseau qui faut voir et là j'ai vu qu'effectivement c'était vide.

    J'ai donc retesté mes variables en dehors de ma boucle juste au dessus du script et vide également. Il s'agit là d'une erreur php. Et c'est logique ..

    En l'occurence je me retrouve une nouvelle fois coincé. Je me suis tourné vers ajax pour ne pas avoir à faire une requette qui chargerais tout mes commentaire de tout mes status . Mais pour avoir les bonne variable je dois être dans cette fichu boucle... bref je vais cherché, là il est temps pour moi de faire une pause de quelque minute car je m'emmêle les pinceaux.

    Merci encore pour tes réponses efficaces!

  9. #9
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    Alors j'ai décidé de faire autrement. Mes valeurs étaient vides parce que je n'étais pas dans la boucle. L'idée de départ aurait été de mettre le script dans la boucle, mais faire tourner en script dans une boucle ce n'est pas terrible comme solution et montrer les données sensibles non lpus.

    J'ai donc modifier mon script ajax pour faire passer les élements souhaités en paramètre (première fois de ma vie que je fais ça !!!!! ). Ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function chargerComment(url, divreponse){ 
    	alert(url);
    	if(window.XMLHttpRequest){xhr=new XMLHttpRequest();}
    	else if(window.ActiveXObject){xhr=new ActiveXObject("Microsoft.XMLHTTP");}
    	xhr.open('GET', url, false);	
    	xhr.send(null); 				
    	if (xhr.readyState==4 && xhr.status==200){
    		obj=document.getElementById(divreponse);
    		obj.innerHTML =xhr.responseText;	
    		alert(xhr.responseText);
    	}else{					
    		alert('erreur');
    	}
    };
    mon code html devient donc :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="" onclick="afficheComment(\'commenter'.$affStat['id'].'\'); chargerComment(\'http://localhost/chien/commentaire_traitement.php?param1='.$affStat['id_membre'].'&parame2='.$affStat['id'].'\', \'listcommentaire'.$affStat['id'].'\'); return false;" >Commenter</a>

    Le script php reste inchangé

    Le problème c'est que ça ne fonctionne qu'à moitié.
    L'url est la bonne (j'ai mis une alert() ) , dans le network je vois bien les données en param, mais alert(xhr.responseText) est vide .

    Je pense que le problème vient de mon div, mais je ne vois pas ou j'ai fait l'erreur. Dans le code source l'affichage est bon. Et me donne :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a href="" onclick="afficheComment('commenter63'); chargerComment('http://localhost/chien/commentaire_traitement.php?param1=5&parame2=63', 'listcommentaire63'); return false;" >Commenter</a></div>
    <div id="listcommentaire63" style="border:1px solid; height:20px;"></div>

    J'y suis presque ! merci de m'aider

    Edit : problème résolu, en fait j'avais en "e" en trop dans param2 de l'url ...

    Alors là en GET tout s'affiche correctement. C'est résolu, me reste à faire la requete .

    Edit et dernier : Voilà j'ai écris ma requete, et l'affichage des réponses marche correctement, ainsi que la mise en page. C'est juste EXCELLENT !! Je sens que je vais bien faire mumuse avec.
    Je met le post en résolu. La je vais la même chose en POST et non pas en GET voir si c'est pas mieux pour les données sensibles.

    Merci à toi bovino pour ton intervention.

    Edit : Je suis passer en POST et aucun problème à signaler.
    Par contre j'ai voulu mettre en résolu, je n'ai pas trouvé ou c'était???

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] affichage dynamique avec php/ajax
    Par cyrilherve dans le forum AJAX
    Réponses: 1
    Dernier message: 15/09/2010, 19h44
  2. [AJAX] Affichage de page avec ajax
    Par vladock dans le forum AJAX
    Réponses: 5
    Dernier message: 16/12/2009, 18h34
  3. [AJAX] Exécuter JS dans réponse Ajax
    Par riete dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 03/11/2008, 17h38
  4. [AJAX] Comment gérer des réponses ajax simultanées ?!
    Par jahjah92 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/09/2007, 21h48
  5. [AJAX] affichage d'images avec ajax
    Par Pi2 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/12/2006, 18h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo