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 :

Garder affiché le contenu d'une liste déroulante


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut Garder affiché le contenu d'une liste déroulante
    Bonjour,

    j'ai trois listes déroulantes liées entre elles : Type prestation - Prestation - Fournisseur

    Une fois que j'ai fait ma sélection dans les trois listes (ex : Mariage - Patissier - Mr Machin), je clique sur un "button" à côté, et "Mariage - Patissier - Mr Machin" va s'afficher dans une quatrième liste déroulante à choix multiple.

    Si je veux ajouter une autre sélection à celle déjà affichée dans la liste, je vais donc modifier mes listes déroulantes, tout en gardant le contenu de ma quatrième liste. Et là il y a un problème. Si je modifie une des deux premières listes (type ou prestation), le contenu de ma liste à choix multiple s'efface.

    Je suppose que ça doit venir du fait que ces deux listes ont un :
    onchange = "this.form.submit()" que la troisième n'a pas.
    Mais comme les listes sont liées entre elles, je suis bien obligée de le mettre.

    Voici mon code pour ajouter dans la quatrième liste ma sélection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function add_liste()
    {
    	var listeChoix = document.getElementById("choix_prestations");
    	var listeChoixFils = listeChoix.firstChild;
     
    	var opt = document.createElement("option");
    	var optValue = document.createAttribute("value");
    	opt.value = document.formEvent.prestations.value + "-" + document.formEvent.fournisseurs.value;
    		opt.appendChild(document.createTextNode(document.formEvent.prestations.value + "-" + document.formEvent.fournisseurs.value));
    	document.getElementById("choix_prestations").appendChild(opt);
    }
    et voici le code d'une des listes (la première) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    echo '<select name="types" onchange="this.form.submit();">';
    echo '<option>Choisissez dans la liste</option>';
    while ($donnees = mysql_fetch_array($req_type)) 
    {  
    	$selected = (isset($_POST['types']) && $_POST['types'] == $donnees['id_type'])? " selected":""; 
    	echo '<option value="'.$donnees['id_type'].'"'. $selected.'>'.$donnees['libelle'].'</option>';
    	$id_type = $_POST['types'];
    }
    echo '</select></td></tr>';
    et enfin le code de la liste à choix multiple avec le bouton sur lequel on clique pour ajouter notre sélection :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // Prestations sélectionnées
    echo '<tr><td>Prestations sélectionnées</td>';
    echo '<tr><td><select id="choix_prestations" multiple>';
    echo '</select></td><td><input type="button" onclick="add_liste();"></input></td></tr>';
    Comment puis-je faire pour garder ce que j'ai déjà sélectionné dans ma quatrième liste, tout en modifiant mes listes déroulantes pour faire d'autres sélections ?

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    soit tu le fais en php avec recupération des variables get ou post soit tu repasses en get la selection et tu parses l'url sur le onload
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    ça voudrait dire que je mets ma sélection dans une variable, et à chaque chargement de page je récupère ce qu'il y a dans cette variable et j'ajoute ensuite ma sélection à chaque fois ?

    Et cette variable je l'affiche dans ma liste ? 'fin je vois pas bien comment faire avec du php en fait =S

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    solution php
    en php tu recupères la selection dans les variables get ou post ...
    ensuite suffit de faire un test sur les variables get ou post pour savoir si l'opiton est selectinnées ou pas et lui coller selected ou pas

    en js
    tu repasses un string avec séparateur à la page
    et sur le onload tu recupères les données dasn l'url (cf FAQ)
    puis en js tu modifies le selected des listes ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    solution php
    en php tu recupères la selection dans les variables get ou post ...
    ensuite suffit de faire un test sur les variables get ou post pour savoir si l'opiton est selectinnées ou pas et lui coller selected ou pas
    Euh je ne comprends pas pourquoi tu veux que je mette le selected à l'option ?
    Ca va permettre de conserver mes données dans ma liste déroulante à choix multiple ça ? oO
    Parce que le faire dans les listes déroulantes normales, pour garder affiché ce que l'on a sélectionné et pouvoir modifier la liste liée suivante, ça je suis d'accord et je l'ai fait sur mes listes. Mais comme pour la quatrième liste à choix multiples j'ajoute les données au fur et à mesure, je ne vois pas bien le rapport en fait :/

    puis en js tu modifies le selected des listes ...
    Pareil que ci-dessus, modifier le selected de ma dernière liste à quoi cela servirait ?

    Merci de tes réponses en tout cas =)

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    ha j'avais compris conserver la selection ...

    desolé

    ben tu fais un if else en php
    si il y a des selctions dans la première liste tu construis les options de la seconde liste en php
    sinon elle est vide ...


    ou alors en javascript tu passes la selection de la première liste dasn l'url et tu lances un ajax sur le onload avec la selection de la première ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/05/2006, 00h27
  2. Réponses: 1
    Dernier message: 20/04/2006, 09h17
  3. afficher les contenu d'une liste dynamiquement
    Par mzt.insat dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/04/2006, 18h02
  4. Contenu d'une liste déroulante
    Par tets88 dans le forum Access
    Réponses: 3
    Dernier message: 20/03/2006, 11h37
  5. Garder fixe la sélection d'une liste déroulante
    Par hysteresis dans le forum ASP
    Réponses: 11
    Dernier message: 20/10/2005, 14h34

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