|
|
|
|
Bonjour,
Je n'ai aucune notion de javascript à part les bases rudimentaires, j'ai cherché longtemps sur internet pour trouver une solution à mon problème mais en vain. Voilà mon problème: sur mon site, j'aimerais afficher un formulaire dans lequel apparait une liste <select>. Je souhaite qu'en fonction de l'élément de la liste (<option>) choisi par l'utilisateur, apparait en bas une autre liste <select> correspondante. Par exemple, l'utilisateur voit s'afficher une liste de produits cosmétiques. Une fois qu'il choisit un de ces produits, une autre liste apparaît plus bas lui proposant les différentes formes d'emballages correspondant au produit qu'il vient de sélectionner.
J'espère que j'ai été assez clair. SVP, si quelqu'un a un script tout prêt ou une ébauche de script, ça serait sympa de me le communiquer.
merci d'avance,
Configuration: Windows Vista Internet Explorer 7.0
Bonsoir,
|
Rebonsoir,
/*On remplit la première liste avec les valeurs inscrites dans le tableau 1*/
function loadList1() {
//on récupère l'élément
var list1 = document.getElementById("list1");
for (var i = 0; i < tab1.length; i++) {
//on crée une nouvelle option
var item = document.createElement('option');
item.value = tab1[i];
item.innerHTML = tab1[i];
//si l'option est la première (Veuillez...), alors on la sélectionne par défaut
if (i == 0) {
item.selected = true;
}
//on ajoute l'option à la liste
list1.appendChild(item);
}
//on affiche la liste2 qui correspond au premier élément de la liste1
if (tab1.length > 0) {
loadList2(tab1[0]);
}
}
function loadList2(list1Value) {
var list2 = document.getElementById("list2");
var toDelete = list2.childNodes;
var tab = tab2[list1Value];
//Premièrement on supprime tous les items de la liste
while (list2.hasChildNodes()) {
list2.removeChild(toDelete[0]);
}
if (tab) {
//Ensuite on définit les nouveaux items, ceux qui sont associé à l'élément affiché dans la liste1
for (var i = 0; i < tab.length; i++) {
var item = document.createElement('option');
item.value = tab[i];
item.innerHTML = tab[i];
list2.appendChild(item);
}
list2.disabled = false;
}
else {
//S'il n'y a aucune entrée pour la valeur dans la liste 1, alors on désactive la liste2
list2.disabled = true;
}
}
Cordialement, rtfm and jfgi Simple "merci" makes helping people happy :) |