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

jQuery Discussion :

Remplir un élément SELECT dynamiquement après sélection dans un menu déroulant


Sujet :

jQuery

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 24
    Points : 11
    Points
    11
    Par défaut Remplir un élément SELECT dynamiquement après sélection dans un menu déroulant
    Bonjour à tous,

    mon sujet touche au html, au php, au javascript, à jQuery et à MySQL, donc je ne suis pas sûr de poster ça au bon endroit, veuillez m'en excuser d'avance

    Je suis chargé de développer une page web. Cette page web doit permettre à un utilisateur de constituer une liste personnalisée de destinataires parmi une base existante pour leur envoyer un message.

    Ma page affiche 2 menus déroulants : un correspondant à une premier niveau de hiérarchie de ma boite (ici Nord, Sud, etc.) , l'autre affichant un niveau inférieur (ville au sein d'une région : Paris, Lille, Marseille, Toulouse, etc.)

    Donc, voilà où j'en suis actuellement :

    Un premier élément SELECT :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <select id="myselect"></select>
    Dont le contenu est peuplé par :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#myselect").jCombo("getNSEO.php");
    jCombo est un plugin jQuery permettant de remplir un menu déroulant depuis un fichier JSON et getNSEO.php est un fichier qui renvoie la version JSON de l'extraction d'une BDD MySQL.

    Le second fait la même chose, mais avec un filtrage permettant de n'afficher que ce qu'il faut (n'afficher que Paris et Lille, etc. si on a sélectionné le Nord).

    J'ai donc :

    Code html : 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
    <html>
    	<head>
    		<script src="js/jquery.js" type="text/javascript"></script>
    		<script src="js/jquery.selectboxes.js" type="text/javascript"></script>
    		<script src="js/jquery.jCombo.js" type="text/javascript"></script>
    	</head>
    	<body>
    		<form>
     
    			<select id="myselect"></select>
    			<select id="myselect2"></select>
    		</form>
    		<script type="text/javascript">
                            $("#myselect").jCombo("getNSEO.php");
                            $("#myselect2").jCombo("getVille.php?id=", { parent: "#myselect" } );
                    </script>
    	</body>
    </html>

    Jusqu'à présent, tout va bien.

    Ce que je veux maintenant pouvoir faire, c'est lorsque que l'on choisit une ville de myselect2, s'affiche dans un 3e SELECT, la liste des personnes travaillant dans cette ville.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <select id="myselect3" size="8" multiple>
    	<option>Employé Nord Paris 1</option>
    	<option>Employé Nord Paris 2</option>
    	<option>Employé Nord Paris 3</option>
    	<option>Employé Nord Paris 4</option>
    </select>

    J'ai déjà codé ceci :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <select id="myselect2" onchange="if (this.selectedIndex) showEmployes();"></select>

    et la fonction correspondante :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function showEmployes()
    			{
    			content=document.forms[0].myselect2.value;
    			alert("Vous avez choisi la ville numero : " + content);
    			}

    Je souhaiterai qu'à la place de l'alerte, mon élément myselect3 se remplisse tout seul comme un grand de la liste des employés de cette ville, obtenue dynamiquement via un fichier PHP/JSON.

    Par la suite, il faudrait que ces valeurs soient sélectionnables et qu'on puisse les envoyer dans une autre SELECT afin de se créer une liste personnalisée et sauvegardable de gens.

    Voilà, j'espère que mon post est assez clair ; je me débrouille pas trop mal en info, mais j'apprends JS, jQ, PHP et MySQL un peu sur le tas.

    Merci d'avance pour tout coup de main

    Hubert

  2. #2
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 386
    Points : 3 532
    Points
    3 532
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    je ne sais pas si j'ai bien tout suivi mais, tu pourrait utiliser ce que tu a fait pour la deuxième combo ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function showEmployes()
    			{
    			$("#myselect3").jCombo("showEmployes.php?ville_id=", document.forms[0].myselect2.value; );
    			}
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Ahah c'était devant mon nez, et j'étais persuadé qu'il fallait que je fasse autrement !

    Merci beaucoup

    J'ai donc simplement ajouté cette ligne :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#myselect3").jCombo("getEmployes.php?id=", { parent: "#myselect2" } );

    Maintenant, ce que je souhaite pouvoir faire c'est sélectionner plusieurs employés de ma nouvelle liste et les envoyer dans une nouvelle liste (comme avec le plugin crossSelect sauf qu'il ne semble pas fonctionner dans mon cas)

    Je suis sous IE8 et dans l'idéal, ca doit fonctionner sous tous les navigateurs.

  4. #4
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 386
    Points : 3 532
    Points
    3 532
    Billets dans le blog
    1
    Par défaut
    Peux tu utiliser jQuery ui selectable ?
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Je peux dans le sens où c'est techniquement possible mais je ne suis pas sûr que ça réponde totalement à ce que je cherche, si ?

  6. #6
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    Bonjour,
    Avec select2 ?
    Perso je l'utiliserais à la place de jcombo et je referais la cascade, mais il est peut-être possible de l’utiliser pour "myselect3"

    Il existe aussi : jQuery MultiSelect

    Ou simplement avec l'attribut multiple : w3cSchools

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par dkmix Voir le message
    Bonjour,
    Avec select2 ?
    Perso je l'utiliserais à la place de jcombo et je referais la cascade, mais il est peut-être possible de l’utiliser pour "myselect3"

    Il existe aussi : jQuery MultiSelect
    Ces 2 plugins semblent très puissants et complets, je vais regarder ca plus en profondeur ! Merci

    Citation Envoyé par dkmix Voir le message
    Ou simplement avec l'attribut multiple : w3cSchools
    J'utilise déjà l'attribut multiple sur myselect3. C'est l'envoi vers une autre liste qui me pose problème

Discussions similaires

  1. Réponses: 12
    Dernier message: 19/06/2014, 11h28
  2. Réponses: 3
    Dernier message: 15/02/2010, 09h34
  3. Réponses: 4
    Dernier message: 22/06/2009, 12h12
  4. [ODBC] Garder une saisie après sélection dans une liste déroulante
    Par nawak.seb dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 27/08/2008, 14h48
  5. Réponses: 5
    Dernier message: 15/08/2006, 16h51

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