|
La Communauté Webmaster 
| Pages: [1] |
 |
|
|
|
Auteur |
Sujet: Listes déroulantes liées (Lu 1228 fois) |
|
 |
Listes déroulantes liées
« sur: le 10-06-2005 a 14:25:33 » |
|
|
|
|
|
|
 |
Re:Listes déroulantes liées
« Répondre #1 sur: le 11-06-2005 a 12:11:27 » |
|
tavman
Habitué
  
Hors-Ligne
Messages: 466

HS
|
regarde un peu la taille du script :
<script type="text/javascript"> function populate(o) { d=document.getElementById('de'); if(!d){return;} var mitems=new Array(); mitems['Main Courses']=['Burger Meals','Breakfast','Steaks','Fish Dishes','Vegetarian Dishes']; mitems['Snacks']=['Brownies','Cookies']; mitems['Drinks']=['Shakes','Sodas','Cocktails','Juices']; mitems['Salads']=['Tuna Salad','Cesar Salad','Green Salad','Prawn Salad']; mitems['Deserts']=['Pancakes','Waffles','Ice Cream','Fresh Fruit']; d.options.length=0; cur=mitems[o.options[o.selectedIndex].value]; if(!cur){return;} d.options.length=cur.length; for(var i=0;i<cur.length;i++) { d.options[i].text=cur[i]; d.options[i].value=cur[i]; } } </script>
alors quand c'est aussi court que ca, tu regarde vite fait et tu voit ca :
mitems['Main Courses']=['Burger Meals','Breakfast','Steaks','Fish Dishes','Vegetarian Dishes']; mitems['Snacks']=['Brownies','Cookies']; mitems['Drinks']=['Shakes','Sodas','Cocktails','Juices']; mitems['Salads']=['Tuna Salad','Cesar Salad','Green Salad','Prawn Salad']; mitems['Deserts']=['Pancakes','Waffles','Ice Cream','Fresh Fruit'];
et tu te dit que t'as plus qu'a essayer de réécrire ca en php avec les éléments de ta bdd... je pense pas que ce soit vraiment trop compliqué.
Après ca, si tu veut t'y retrouver dans tes items, plutot que de faire passer tes données en chaine de caractère, t'as cas faire passer tes chiffres :
<select name="or" id="or" onchange="populate(this)"> <option value="1">Main Courses</option> <option value="2">Snacks</option> <option value="3">Salads</option> <option value="4">Drinks</option> <option value="5">Deserts</option> </select>
et dans le JS, tu met ca :
for(var i=0;i<cur.length;i++) { d.options[i].text=cur[i]; d.options[i].value=i; }
et tu devrait pouvoir t'y retrouver...
Voila, bonne chance a toi |
I-Radian |
|
|
 |
Re:Listes déroulantes liées
« Répondre #2 sur: le 13-06-2005 a 10:03:40 » |
|
|
|
|
 |
Re:Listes déroulantes liées
« Répondre #3 sur: le 13-06-2005 a 12:10:09 » |
|
|
|
|
 |
Re:Listes déroulantes liées
« Répondre #4 sur: le 13-06-2005 a 13:44:17 » |
|
|
|
|
 |
Re:Listes déroulantes liées
« Répondre #5 sur: le 13-06-2005 a 20:08:03 » |
|
tavman
Habitué
  
Hors-Ligne
Messages: 466

HS
|
par contre je n'ai pas trop compris : et dans le js tu mets ça: for(var i=0;i<cur.length;i++) { d.options[i].text=cur[i]; d.options[i].value=i; }
|
| bahh c'est plutot simple : la seule ligne que j'ai changé la dedans en fait, c'est ca : d.options[i].value=cur[i];
que j'ai remplacé par ca : d.options[i].value=i;
ainsi, lorsque tu récupère tes variables, tu récupère un chiffre et non une String... Donc c'est plus facile pour t'y retrouver dans ta base de données... Perso, jte conseil plutot de faire deux base comme ca :
base 1 (les valeurs de ta première liste) : ____________ ID1 | VALUE |
base 2 (les valeurs de la seconde liste) : ______________________________ ID2 | ID1 | Pos_Objet | VALUE |
ID1 renvoit la valeur pour savoir si on met l'objet dans telle ou telle liste... et Pos_Objet, c'est son numéro dans la liste... Donc quand tu voudra récupèrer quelque chose, t'aura cas faire une recherche pour voir les objet ou ID1 c'est la valeur renvoyée par la première liste et Pos_Objet c'est la valeur renvoyée par la deuxième liste....
Remarque, t'aurai pu utilisé VALUE de la même manière, mais c'est juste une mesure de sécurité : si jamais un jour t'as 2 fois la même VALUE qui correspond a l'ID1, tu pourra toujours le retrouvé... Enfin là, c'est un peu compliqué, c'est clair...
Une autre remarque : tu pourrait aussi faire une 2ème liste dans ton javascript qui contient n parallèle de l'autre les ID2 correspondantes aux VALUE....
Enfin bon, a chacun ses techniques pour s'y retrouver entre un tableau et une base de données, après, c'est a toi de gérer... |
I-Radian |
|
|
| Pages:
[1] |
|
|
|
| |
|
|