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] Besoin d'aide sur AJAX ...


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 122
    Points : 74
    Points
    74
    Par défaut [AJAX] Besoin d'aide sur AJAX ...
    Bonjour,
    je souhaite saisir un code postal dans une zone text et je veux récupérer les villes correspondantes dans un champs select sans envoi au serveur. On me dit d'utiliser AJAX.
    Je suis aller voir sur des tutoriaux AJAX mais je ne m'en sort pas. Je vous transmet mon code si quelqu'un peux me dire ce qui ne va pas !!!

    d'avance merci.

    voici test.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
    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    <html>
    	<head>
    		<script type='text/javascript'>
    			var xhr = null; 
     
    			function getXhr(){
    				if(window.XMLHttpRequest) // Firefox et autres
    				   xhr = new XMLHttpRequest(); 
    				else if(window.ActiveXObject){ // Internet Explorer 
    				   try {
    			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			                   } catch (e) {
    			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			            }
    				}
    				else { // XMLHttpRequest non supporté par le navigateur 
    				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    				   xhr = false; 
    				} 
    			}
     
    			/**
    			* Méthode qui sera appelée sur le click du bouton
    			*/
    			function go(){
    				alert("je rentre dans go");
    				getXhr();
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						leselect = xhr.responseText;
    						// On se sert de innerHTML pour rajouter les options a la liste
    						document.getElementById('ville').innerHTML = leselect;
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","ajaxville.php",true);
    				// ne pas oublier ça pour le post
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				// ne pas oublier de poster les arguments
    				code = document.getElementById('code').value;
    				xhr.send("ville="+code);
    				alert ("je passe envoicode");
    			}
    		</script>
    	</head>
    	<body>
    		<form>
    			<fieldset style="width: 500px">
    				<legend>Liste liées</legend>
    				<label>Code Postal</label>
    				<input type="text" name="code" size="5" maxlength="5" OnChange="go()">
     
    				<label>Ville</label>
    				<div id='livre' style='display:inline'>
    				<select name='ville'>
     
    				</select>
    				</div>
    			</fieldset>
    		</form>
    	</body>
    </html>
    et voci ajaxville.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    	echo "<select name='ville'>";
    	if(isset($_POST["idAuteur"])){
    		mysql_connect("localhost","root","");
    		mysql_select_db("mascarade");
    		$res = mysql_query("SELECT ville FROM postal WHERE code =".$_POST["code"].");
    		while($row = mysql_fetch_assoc($res)){
    			echo "<option value='".$row["ville"]."'></option>";
    		}
    	}
    	echo "</select>";
    ?>

  2. #2
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 122
    Points : 74
    Points
    74
    Par défaut
    Personne ne peut m'aider ???

  3. #3
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('code').value
    n'existe pas... car tu n'as qu'un attribut name qui ait pour valeur "code"...

    bref, ajoute à ton champ;

  4. #4
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 122
    Points : 74
    Points
    74
    Par défaut
    lorsque je rajoute un display
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // ne pas oublier de poster les arguments
    code = document.getElementById('code').value;
    xhr.send("code="+code);
    alert (code);
    dans mon alert, j'ai bien la valeur que j'ai renseigné

    Où veux-tu que je rajoute un id = "code" ???

    Merci pour ton aide

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    relis calmement ton html (le formulaire) et constate qu'aucun élément n'a pour id "code";

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 122
    Points : 74
    Points
    74
    Par défaut
    j'ai modifié mon formulaire en ne gardant que ce qu'il faut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <form> 
    <label>Code Postal</label> 
    input type="text" id='code' name="code" size="5" maxlength="5" OnChange="go()"> 
    <label>Ville</label> 
    <select name='ville'> 
     
    </select> 
    </form>
    et voici la fin de ma fonction go()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // ne pas oublier de poster les arguments
    icode = document.getElementById('code').value;
    xhr.send("code="+icode);
    alert (icode);
    le alert de la fonction go() renvoi bien une valeur mais mon select de mon formulaire ne s'alimente toujours pas
    Qu'est-ce qui cloche encore ?

    Merci.

  7. #7
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    autre bizarrerie: ton "display:inline" pour un div contenant un select!

  8. #8
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 122
    Points : 74
    Points
    74
    Par défaut
    c'est du code récupéré sur le net, dans mon dernier message tu peux voir que je l'ai supprimé

    Vois-tu d'ou vient mon problème ?

  9. #9
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    toujours le même problème: tu confonds les attributs "name" et "id"...

    là, par exemple, tu écris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('ville').innerHTML =...
    alors qu'aucun élément n'a pour id "ville";

  10. #10
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    si je peux me permettre ... si tu regardes bien, dans le tuto de siddh, la listbox est entièrement regénérée par le code PHP, et la 'cible' du innerHTML est un div.
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/01/2012, 16h52
  2. [AJAX] Besoin d'aide sur AJAX
    Par fabrizti dans le forum AJAX
    Réponses: 1
    Dernier message: 27/09/2009, 13h21
  3. Filemaker ... besoin d'aide sur les Plugin
    Par joange dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 22/04/2004, 10h16
  4. [intermedia] besoin d'aide sur script PL/SQL
    Par SteelBox dans le forum PL/SQL
    Réponses: 8
    Dernier message: 05/01/2004, 19h59
  5. [CR] besoin d'aide sur les formules
    Par GuillaumeDSA dans le forum Formules
    Réponses: 4
    Dernier message: 10/07/2003, 12h19

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