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 :

Trois Select liés


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de richard_sraing
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2005
    Messages : 483
    Points : 182
    Points
    182
    Par défaut Trois Select liés
    Bonjour tout le monde.

    voilà, toujours dans le cadre d'une application web développée en asp (avec le code behind rédigé en Dataflex), je suis arriver à un point dans lequel il faut que j'affiche 3 listes de sélection, et pour bien faire, il faudrait que celles-ci soient liées.

    Je m'explique, j'ai une première liste contenant les code des pays:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <select name="Cli__Py" id="Cli__Py" size="1" onChange="go()">
        <option value="B" >B</option>
        <option value="CH" >CH</option>
        <option value="D" >D</option>
        <option value="F" >F</option>
        <option value="L" >L</option>
        <option value="NL" >NL</option>
    </select>
    La fonction go est celle reprise du tuto adaptée que voici (voir lien plus bas):
    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
    function getXhr(){
    	var xhr = null; 
    	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; 
    	} 
    	return xhr;
    }
     
    function go(){
    	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){
    			leselect = xhr.responseText;
    		// On se sert de innerHTML pour rajouter les options a la liste
    			document.getElementById('Cli__Cdp').innerHTML = leselect;
    		}
    	}
    	// Ici on va voir comment faire du post
    	xhr.open("POST","ajaxLivre.php",true);
    	// ne pas oublier ça pour le post
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	alert('test');
    	// ne pas oublier de poster les arguments
    	// ici, l'id de l'auteur
    	sel = document.getElementById('Cli__Py');
     
    	Cli__Py = sel.options[sel.selectedIndex].value;
    	xhr.send("Cli__Py="+Cli__Py);
    }
    Dans la deuxième liste de sélection, lors de la création de la page, je récupère tout les codes postaux stockés dans ma base de données.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <select title="" name="Cli__Cdp" id="Cli__Cdp" onChange="ChangeCdp">
        <%oCliEntry.call "Msg_CodePostal" %>
    </select>
    Voici la procédure "Msg_CodePostal":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Procedure CodePostal
            String sResult
            Send Clear of oCdp_DD
            Move 0 to CDP.CDP
            Send Find of oCdp_DD GE 1
            While (Found) 
                Send WriteHtml  ("<option value="+CDP.CDP+">"+CDP.CDP +" - "+CDP.VIL+" - ("+(Trim(CDP.PY))+")</option>")
                Send Find of oCdp_DD GT 1
            Loop
    End_Procedure
    Et alors la troisième liste contiendra le nom des villes associées aux codes postaux de la liste précédente. Même principe pour la création de celles-ci que pour la création de la liste des codes postaux.

    j'ai fait un petit tour sur le forum, et trouver quelques informations au sujet de la mise à jour de liste. Entre autre le lien suivant.

    Le problème, est que tout le code est rédigé, pour la partie non Javascript en php, et que, n'ayant jamais eu de cours de développement web, je n'y comprend donc rien.
    Alors ma question est la suivante:
    Quelqu'un pourrait-il m'expliquer comment cela fonctionne, et comment je pourrais intégrer tout cela dans une page asp?
    Si je comprend bien les choses, la parties de code se trouvant dans le fichier "ajaxLivre.php" va créer de manière dynamique la liste associée au auteur. Le problème dans mon cas, j'ai mes éléments dans des tableaux, et ne sais donc pas comment faire appel à la création de la liste sans la retrouver deux fois dans mon tableau...

    (En gros, je suis complètement paumer, au secours...)

    Merci pour l'aider que vous pourrez m'apporter afin de voir un peu plus clair dans tout ça.
    First step: F.A.Q.
    Second step: Forum -> Recherche
    Thrid step: Forum -> Poser une question
    Fourth step: Forum -> Attendre une réponse
    Fifth step: Forum -> Remercier les personnes ayant répondu et signaler comme résolu

    Simple non ? l'utilisation de developpez.com

  2. #2
    Membre habitué Avatar de richard_sraing
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2005
    Messages : 483
    Points : 182
    Points
    182
    Par défaut
    Je pense bien avoir trouver une solution au problème qui se pose à moi.

    Je vais manger qqchose, et après, je m'y remet...

    Désolé si ce message était superflu.
    First step: F.A.Q.
    Second step: Forum -> Recherche
    Thrid step: Forum -> Poser une question
    Fourth step: Forum -> Attendre une réponse
    Fifth step: Forum -> Remercier les personnes ayant répondu et signaler comme résolu

    Simple non ? l'utilisation de developpez.com

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Tu as dû sauter cette étape : "Second step: Forum -> Recherche", car au début du forum "javascript, on trouve :
    Listes déroulantes liées entre elles

Discussions similaires

  1. [MySQL] 2 Selects liés
    Par alpha232 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/01/2010, 17h19
  2. Gestion de Select liés
    Par apt dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/12/2009, 00h38
  3. [AJAX] 3 select liés
    Par Chybro dans le forum AJAX
    Réponses: 1
    Dernier message: 07/06/2009, 12h45
  4. Select liés et sigle Euro
    Par zevince dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/04/2007, 10h41
  5. select liés entre eux
    Par spykiller dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 17/11/2005, 14h25

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