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

JavaScript Discussion :

[AJAX] récupérer données transmises par php


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 65
    Points
    65
    Par défaut [AJAX] récupérer données transmises par php
    Bonjour à tous,

    Je débute en ajax et je ne vois pas le bout de mon test.

    L'exercice est a priori facile : j'ai une page web, je saisis mon identifiant dans un champ de formulaire et mon nom de famille doit apparaître dans le champ suivant, et ce, une fois que mon focus a quitté le champ de l'identifiant.

    Je me suis inspirée d'un bouquin pour cet essai mais ce n'est pas très concluant. Voici ma page identifier.html :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    <html> 
     <head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
      <title>Livraison Pizza Prestissima</title>
      <script language="javascript" type="text/javascript">
       var requete = null;
    	try {
      		requete = new XMLHttpRequest();
       	} catch (essaimicrosoft) {
       		try {
       			requete = new ActiveXObject("Msxml2.XMLHTTP");
      		} catch (autremicrosoft) {
        		try {
        			requete = new ActiveXObject("Microsoft.XMLHTTP");
        		} catch (echec) {
        			requete = null; 
    	  		}
      		}
    	}
       if (requete == null)
       	 alert("Impossible de créer l'objet requête!");
     
     
       function getInfosClient() {
         var login = document.getElementById("login").value;
         var url = "chercherClient.php?login=" + login;
         requete.open("GET", url, true);
         requete.onreadystatechange = actualiserPage;
         requete.send(null);
       }
     
       function actualiserPage() {
         if (requete.readyState == 4) {
           /* Obtenir la réponse du serveur */
           var nomUser = requete.responseText;
           /* Mettre à jour le formulaire */
           document.getElementById("nom").value = nomUser;
         }
       }
      </script>
     </head>
     
     <body onLoad="document.forms[0].reset();">
      <form method="POST" action="passerCommande.php">
       <p>Entrez votre login :
        <input type="text" size="14" name="login" id="login" onChange="getInfosClient();" />
       </p>
       <p>Votre nom :</p>
       <p><textarea name="nom" id="nom"
                    rows="4" cols="50"></textarea></p>
       <p><input type="submit" id="submit" name="submit" value="Commander" /></p>
      </form>
     </body>
    </html>
    Et voici mon code chercherClient.php simplifié au maximum... Vous allez me dire que l'utilité de lui passer une paramètre se discute mais j'espère pouvoir un jour tester avec mon login passé en paramètre !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    $nom = "TOTO";
    echo $nom;
    ?>
    Je n'ai laissé que ça car si j'ai bien compris, c'est le echo que le javascript prend en compte. Mais si je tape un identifiant et que je change de champ, voici les résultats :

    Résultat sous internet explorer 7 : il m'indique que j'ai des erreurs qui empêchent ma page web de s'afficher correctement. Dans le détail :
    ligne : 29
    Caractère : 6
    Erreur : accès refusé
    Code : 0
    URL : file:///C:/EasyPHP/www/identifier.html
    Résultat avec firefox 1.0.7 : je tape l'identifiant, je passe au champ suivant. Et voici ce qu'il s'affiche dans le champ :
    <?php
    $nom = "TOTO";
    echo $nom;
    ?>
    Je vous remercie d'avance pour votre aide précieuse, je suis à peu près aussi perdue que si j'étais une aiguille dans une botte de foin !

  2. #2
    Membre actif Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Points : 248
    Points
    248
    Par défaut
    Bizarre... Le résultat sous Firefox donne l'impression que tu n'exécutes pas ta page PHP sur un serveur.

    edit : Je viens de tester sous Firefox et ton code fonctionne sans problème. Je pense que ton problème venait du fait que tu n'exécutes pas ta page PHP sur un serveur. Impecc' aussi sous IE.
    Chen norris
    C/C++, C#, Java, PHP & SQL coder
    Web developer

  3. #3
    Membre du Club
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 65
    Points
    65
    Par défaut
    Tu as raison. Je n'avais pas vu ça comme ça, mais ça semble pourtant évident maintenant que tu l'as dit.

    J'ai donc envoyé mes codes sur un serveur ouaibe et là ça fonctionne à merveille (mon Dieu que ça fait du bien). Et en local, j'ai compris le souci : j'exécutais en double-cliquant directement sur le fichier, du coup, le code n'est pas exécuté par le serveur. C'est complètement idiot d'avoir travaillé comme ça mais au moins ça m'aura servi de leçon !

    Merci à toi, ton intervention m'a bien aidée ! Plus que tu ne pouvais l'imaginer sans doute ! Hihi !

  4. #4
    Membre du Club
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 65
    Points
    65
    Par défaut
    Oui voilà c'est comme ce que tu dis dans ton edit !

  5. #5
    Membre actif Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Points : 248
    Points
    248
    Par défaut
    Tag "résolu" ?
    Chen norris
    C/C++, C#, Java, PHP & SQL coder
    Web developer

  6. #6
    Membre du Club
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 65
    Points
    65
    Par défaut
    Yup Yup !

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

Discussions similaires

  1. Variables Dynamiques transmises par PHP
    Par CULT OF DEATH dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 13/03/2009, 00h24
  2. récupérer données post par foreach
    Par Linu6 dans le forum Langage
    Réponses: 2
    Dernier message: 13/09/2008, 17h35
  3. Datagrid > Formatage des données reçues par PHP
    Par purple21 dans le forum Flash
    Réponses: 3
    Dernier message: 28/06/2007, 11h33
  4. [HTML] Récupérer données saisies par Utilisateur
    Par jacques13 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 08/01/2007, 21h55
  5. Réponses: 5
    Dernier message: 27/12/2004, 00h38

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