Liste déroulante liée
Résolu/Fermé
gif50
Messages postés
29
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
5 juillet 2012
-
30 sept. 2009 à 17:12
gif50 Messages postés 29 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 5 juillet 2012 - 2 oct. 2009 à 14:32
gif50 Messages postés 29 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 5 juillet 2012 - 2 oct. 2009 à 14:32
8 réponses
Alain_42
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
902
30 sept. 2009 à 17:37
30 sept. 2009 à 17:37
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é
Alain_42
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
902
30 sept. 2009 à 18:04
30 sept. 2009 à 18:04
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
gif50
Messages postés
29
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
5 juillet 2012
1 oct. 2009 à 11:20
1 oct. 2009 à 11:20
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
Alain_42
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
902
1 oct. 2009 à 11:53
1 oct. 2009 à 11:53
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
gif50
Messages postés
29
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
5 juillet 2012
1 oct. 2009 à 14:35
1 oct. 2009 à 14:35
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
gif50
Messages postés
29
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
5 juillet 2012
1 oct. 2009 à 16:42
1 oct. 2009 à 16:42
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
Alain_42
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
902
1 oct. 2009 à 17:32
1 oct. 2009 à 17:32
Bravo !
Cordialement
@lain
Cordialement
@lain
Alain_42
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
902
1 oct. 2009 à 17:41
1 oct. 2009 à 17:41
par contre attention tu as utilisé" long" comme nom de variable, apparemment c'est un mot réservé javascript
mais ça n'a pas l'air de gêner ?
mais ça n'a pas l'air de gêner ?
gif50
Messages postés
29
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
5 juillet 2012
2 oct. 2009 à 14:32
2 oct. 2009 à 14:32
Merci Alain_42,
Je n'ai pas vu de problème avec le mot "long" mais pour eviter tout problème je l'ai remplacer par "nb".
Cordialement,
Gif50
Je n'ai pas vu de problème avec le mot "long" mais pour eviter tout problème je l'ai remplacer par "nb".
Cordialement,
Gif50