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 :

Problème événement onchange


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de neoboy
    Inscrit en
    Juillet 2007
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 200
    Points : 96
    Points
    96
    Par défaut Problème événement onchange
    Bonjour tout le monde,
    Voila j’ai un souci l’événement « onchange » : je vous explique.
    Donc j’ai 2 liste déroulante dépendante (la 1 de la 2), la première liste prend ses valeurs dans une base comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <select id='marque' onchange='change()'>
    					<option value='-1'>Aucun</option>
    					<?php
    						mysql_connect("localhost","root","");
    						mysql_select_db("therm");
    						$res = mysql_query("SELECT * FROM marques ORDER BY mar");
    						while($row = mysql_fetch_assoc($res)){
    							echo "<option value='".$row["id"]."'>".$row["mar"]."</option>";
    						}
    					?>
    					</select>

    Et la 2éme reçois les données via l’objet xmlhttprequest , comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div id='famille' style='display:inline'  >
    				<select onchange="javascript:boy()">
    					<option value='-1'>Choisir une famille</option>
    				</select>
    				</div>
    Le problème est quand je change de valeur dans la 2éme liste, le onchange ne marche pas, je sais pas si c’est parce que le select se trouve dans un div ou autre .
    Si y a quelqu’un pour m’aider n’hésitez pas . merci d’avance .

  2. #2
    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
    on ne voit pas tes fonctions js!

  3. #3
    Membre régulier Avatar de neoboy
    Inscrit en
    Juillet 2007
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 200
    Points : 96
    Points
    96
    Par défaut
    si tu veux la premiére fonction c'est du xmlhttprequest et la voila elle marche trés bien :
    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
    function change()
     
    			{
     
    				var xhr = 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){
    						di = document.getElementById('famille');
    						di.innerHTML = xhr.responseText;
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","famille.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
    				// ici, l'id de l'auteur
    				idauteur = document.getElementById('marque').options[document.getElementById('marque').selectedIndex].value;
    				//alert(idauteur);
    				xhr.send("idAuteur="+idauteur);
     
     
    			}
     
     
    			function zero(){
     
    				var xhr = 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){
    						di = document.getElementById('modele');
    						di.innerHTML = xhr.responseText;
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","modele.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
    				// ici, l'id de l'auteur
    				idauteur = document.getElementById('second').options[document.getElementById('second').selectedIndex].value;
    				//alert(idauteur);
    				xhr.send("idAuteur="+idauteur);
     
     
    			}

    le probléme c'est que j'ai envie de faire pareil avec la 2éme ç marche pas car y a pas de retour d'info de la 2éme liste mais voila j'ai mis un truc bidon pour voir et ça marche pas , mais la voila :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function boy()
    			{
    			alert("rentre")
    			}

  4. #4
    Membre régulier Avatar de neoboy
    Inscrit en
    Juillet 2007
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 200
    Points : 96
    Points
    96
    Par défaut
    Si tu veux le problème est qu'il y a pas d changement lors du change , c'est à dire que le "onchange" ne marche pas dans mon contexte , je sais pas si c à cause de la syntaxe ou bien que la liste 2 est le resultat de l'objet xmlhttprequest !! voila si tu peux m'aider

  5. #5
    Membre régulier Avatar de neoboy
    Inscrit en
    Juillet 2007
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 200
    Points : 96
    Points
    96
    Par défaut
    je vois que personne n'a de solution ???

  6. #6
    Membre régulier Avatar de neoboy
    Inscrit en
    Juillet 2007
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 200
    Points : 96
    Points
    96
    Par défaut
    allé les copains j'ai trouver la solution !!!! yahoooo

  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
    ben vu que tu réécris totalement le contenu du 2e conteneur lors de la première requête, il est probable que le onchange passe à la trappe... sauf s'il est spécifié dans le texte que tu charges!

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

Discussions similaires

  1. envoyer un formulaire sur un évènement onchange.
    Par maniaco_jazz dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/11/2005, 14h44
  2. Courcircuiter l'évènement OnChange d'un TEdit
    Par Captain_JS dans le forum C++Builder
    Réponses: 3
    Dernier message: 13/07/2005, 14h33
  3. [HTML] Probleme avec les événement OnChange et OnClick
    Par G_Kill dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 04/05/2005, 16h06
  4. Récupérer événements OnChange&OnScroll de ScrollBox
    Par bohort dans le forum C++Builder
    Réponses: 2
    Dernier message: 21/09/2004, 10h24
  5. Problème évènements clavier
    Par julie20 dans le forum Langage
    Réponses: 3
    Dernier message: 24/09/2003, 12h39

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