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] Requête ajax ne retourne rien


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut [AJAX] Requête ajax ne retourne rien
    Bonjour,

    Je suis débutante en ajax et j'ai réalisé une petite fonction
    pour me familiariser avec celui-ci mais ça ne marche pas :

    En fait, j'aimerai tout simplement afficher une localité en fonction
    d'un code postal entré.

    Voici mon code avec la fonction js:
    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
     
    <html>
    <head>
    <script type='text/javascript'>
     
    function tmt(){
     
    var xhr = getXhr();
    xhr.open("POST","tmt.php",true);
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
     
        xhr.onreadystatechange = function()
       {
     
    	if(xhr.readyState == 4)
    	{
            	reponse = xhr.responseText;
    		//window.alert(reponse);
     
            	if (reponse != "")
    	       {
    		 document.getElementById('localite').innerHTML = reponse;
    		 document.getElementById('localite').visibility = "visible";
    	      }
    	      else
    		 window.alert("erreur");
     
    	}
     
       }
    cp = document.getElementById('cp').value;
    xhr.send("cp="+cp);
    }
    </script>
    </head>
     
    <body>
    	<fieldset style="width: 500px">
    	 <form>
                 CP:  <input type="text" id="cp">
    	            <input type="submit" onClick="tmt();">
    		    <input type="text" id="localite" style="visibility:hidden ">
    	</form>
    	</fieldset>
     
    </body>
    </html>

    et voici le code php:

    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
     
    <?php
    include ('Connect2.php');
     
    if (isset ($_POST["cp"])
    {  
       $cp = $_POST["cp"];
       $query = "select nom_loc from localite where cp = ".$cp."";
       $result =  mysql_query($query)or die("Erreur query: \n". mysql_error());
     
       if($val = mysql_fetch_array($result))
       {
    		echo $val[0];;
    	}
    	else
    	   echo "erreur requete";
    }
    ?>
    Le problème c'est que ma variable reponse reste vide et il m'affiche donc le message "erreur" et je n'arrive vraiment pas à comprendre pourquoi.

    Merci d'avance pour votre aide.

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut

    $query = "select nom_loc from localite where cp = ".$cp."";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $query = "select nom_loc from localite where cp = '".$cp."'";

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci bcp pour la réponse

    mais malheureusement ça ne marche toujours pas

    J'ai aussi corrigé l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById('localite').style.visibility = "visible";
    Mais toujours le même problème

  4. #4
    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 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" onClick="tmt();">
    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

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci bovino pour ta réponse,

    mon champ texte apparait bien maintenant mais il reste vide.
    Pourtant j'ai testé le contenu de ma variable reponse et elle contient bien ma localité, donc je vois pas pourquoi elle ne s'affiche pas dans mon champ texte

  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 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Normal, tu envoies ton résultat dans un input, et comme l'indique le fait que les balises input sont autofermantes, elles ne possèdent pas de innerHTML, il faut passer par le value.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('localite').value = reponse;
    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
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Effectivement, ça fonctionne mieux comme ça

    un grand merci

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

Discussions similaires

  1. [AJAX] ma fonction ne retourne rien
    Par trigone dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 22/12/2008, 18h06
  2. [AJAX] Requête ajax par un seul ou plusieurs fichiers ?
    Par codefalse dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/10/2008, 15h25
  3. [AJAX] requète AJAX en boucle
    Par Emcy dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 25/04/2008, 11h30
  4. [AJAX] InlineMod - Ajax - Requêtes PHP-MySQL
    Par funkyy dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/04/2008, 17h17
  5. [MySQL] Requête qui ne retourne rien
    Par baleiney dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/06/2006, 18h29

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