Liste déroulante liée
Résolu
gif50
Messages postés
29
Date d'inscription
Statut
Membre
Dernière intervention
-
gif50 Messages postés 29 Date d'inscription Statut Membre Dernière intervention -
gif50 Messages postés 29 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Dans un fichier php, j'ai 2 listes déroulantes, renseignées par une requête mysql, qui contiennent les mêmes données .
La première qui concerne le titulaire et la seconde qui concerne le suppléant.
Je voudrais que lorsque je choisis un titulaire dans la première liste, il n'apparaisse pas dans la seconde, la même personne ne pouvant être à la fois titulaire et suppléant.
Merci d'avance pour votre aide.
Gif50
Dans un fichier php, j'ai 2 listes déroulantes, renseignées par une requête mysql, qui contiennent les mêmes données .
La première qui concerne le titulaire et la seconde qui concerne le suppléant.
Je voudrais que lorsque je choisis un titulaire dans la première liste, il n'apparaisse pas dans la seconde, la même personne ne pouvant être à la fois titulaire et suppléant.
Merci d'avance pour votre aide.
Gif50
A voir également:
- Liste déroulante liée
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
- Liste code ascii - Guide
- Site dangereux liste - Guide
8 réponses
tu dois pouvoir faire ça en javascript
onChange sur la premiere liste va appeler une fonction JS qui va supprimer l'entree correspondante dans la deuxieme
vas voir sur G ou sur ce forum
Javascript supprimer une option de liste deroulante
mais fais gaffe car si l'utilisateur change son choix dans la liste une ça va en supprimer un a chaque fois
dans ce cas le mieux serait que ça mettre disabled dans l'option concernée, le nom apparaitra mais ne pourra pas être sélectionné
onChange sur la premiere liste va appeler une fonction JS qui va supprimer l'entree correspondante dans la deuxieme
vas voir sur G ou sur ce forum
Javascript supprimer une option de liste deroulante
mais fais gaffe car si l'utilisateur change son choix dans la liste une ça va en supprimer un a chaque fois
dans ce cas le mieux serait que ça mettre disabled dans l'option concernée, le nom apparaitra mais ne pourra pas être sélectionné
je crois que ma deuxième solution n'est pas possible, mais pour la première vas voir ce site:
http://fr.selfhtml.org/javascript/objets/options.htm#effacer_elements
http://fr.selfhtml.org/javascript/objets/options.htm#effacer_elements
Bonjour Alain_42,
Tout d'abord merci pour ta réponse.
Elle m'a permis de trouver une solution pour supprimer dans la liste2 l'élément choisi dans la liste1.
Mais comme tu l'indiques si l'utilisateur change l'élément de la liste1, on supprime à nouveau un élément de la liste2 mais sans retrouver le tout premier élément choisi.
Il faudrait je pense d'abord recopier la liste1 dans la liste2 et ensuite supprimer le nouvel élément choisi de la liste1, par contre je ne sais pas comment faire ça.
Si quelqu'un a une idée elle est la bienvenue.
Cordialement,
Gif50
Tout d'abord merci pour ta réponse.
Elle m'a permis de trouver une solution pour supprimer dans la liste2 l'élément choisi dans la liste1.
Mais comme tu l'indiques si l'utilisateur change l'élément de la liste1, on supprime à nouveau un élément de la liste2 mais sans retrouver le tout premier élément choisi.
Il faudrait je pense d'abord recopier la liste1 dans la liste2 et ensuite supprimer le nouvel élément choisi de la liste1, par contre je ne sais pas comment faire ça.
Si quelqu'un a une idée elle est la bienvenue.
Cordialement,
Gif50
J'ai fais depuis une recherche un peu plus approfondie http://www.aliasdmc.fr/balise/zone_html_option.html il est possible de mettre disabled=true dans la balise option, donc de modifier ça par javascript
ça résoudrait ton pb car il suffit de parcourir toutes les <option> de la liste 2 et de mettre disabled=false pour tous sauf celle selectionnée liste1 que tu mettrait disabled=true
ça résoudrait ton pb car il suffit de parcourir toutes les <option> de la liste 2 et de mettre disabled=false pour tous sauf celle selectionnée liste1 que tu mettrait disabled=true
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci Alain pour ta réponse, mais la fonction "disabled" permet effectivement de ne plus pouvoir sélectionner l'élément, en revanche il n'est pas possible de le remettre "enabled" car "disabled = false" ne fonctionne pas.
Je suis entrain de tester une solution ajax qui utilise le système des listes déroulantes liées.
Cordialement,
Gif50
Je suis entrain de tester une solution ajax qui utilise le système des listes déroulantes liées.
Cordialement,
Gif50
J'ai trouvé la solution dont voici le code javascript :
function go(){
//Je récupère l'indice selectionné dans la liste1
var indice=document.form.liste1.selectedIndex;
//Je calcule le longueur de la liste1
var long=document.form.liste1.length;
//Je supprime l'attribut 'disabled' des tous les éléments de la liste2
for (i=0; i<long; i++) {
document.form.liste2.options[i].removeAttribute("disabled");
}
//Je 'disabled' l'element selectionné de la liste1 dans la liste2 pour ne pas pouvoir le selectionné
document.jeune.liste2.options[indice].disabled = true;
}
Merci à Alain_42 pour m'avoir mis sur la piste.
Cordialement,
Gif50
function go(){
//Je récupère l'indice selectionné dans la liste1
var indice=document.form.liste1.selectedIndex;
//Je calcule le longueur de la liste1
var long=document.form.liste1.length;
//Je supprime l'attribut 'disabled' des tous les éléments de la liste2
for (i=0; i<long; i++) {
document.form.liste2.options[i].removeAttribute("disabled");
}
//Je 'disabled' l'element selectionné de la liste1 dans la liste2 pour ne pas pouvoir le selectionné
document.jeune.liste2.options[indice].disabled = true;
}
Merci à Alain_42 pour m'avoir mis sur la piste.
Cordialement,
Gif50