[ASP] onchange js à asp

Fermé
Heng kevin - 8 mars 2005 à 16:15
 Heng Kevin - 24 mars 2005 à 13:09
Bonjour

Je vais poser une question très simple mais comme je viens de commencer en ASP je ne m'y retrouve pas encore bien.

Ce que je veux faire, c'est afficher un drop liste dynamiquement par rapport à ce que la base me retourne. J'ai des champs liées et 3 drop listes. Jusque là car marche bien avec des submit à chaque drop list mais je ne veux pas faire de post entre chaque selection. J'ai trouvé une solution qui étais d'utiliser onchange afin de modifier mes variables de session :

Response.Write "<SELECT name=""Brand"" onchange=""call changeVal(this.options[this.selectedIndex].value, ""brand"")"">"

Mais hélas comme vous pouver le remarquer, "this.options[this.selectedIndex].value" c'est pas du vb. Je veux réccupérer la valeur actuelle du tableau comme je peux le faire en js.

Merci

4 réponses

StreM Messages postés 515 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 28 février 2007 124
8 mars 2005 à 17:03
Tu veux faire quoi ?
récupérer quelle valeur pour la retourner à quoi ?
c'est quoi ta requete ?
changeVal est un script VB ?
0
Bon apparement je n'ai pas été clair.

Ce que je voudrais c'est lier 3 drop list entre eux sans passé par un post. Mais ces drop list tapent dans une table oracle.

1er drop list la requete est
select brand from products

La seconde
select ranges from products where brand = "brand selectionné  précédement"

La 3eme
select type from products where brand = "brand selectionné  précédement" and ranges = "ranges selectionné  précédement"


Ces requete une fois réccupéré alimente les drop list. les 2 suivantes dépende de la 1er.

ChangeVal c bien du VB.

Autre chose. Je me demande maintenant si ce que je demande est possible car j'ai oublié une notion fondemental : js c'est coté client et vb coté serveur. Je me demande si il est possible de le faire sans passer par un submit à chaque drop.

Merci
0
StreM Messages postés 515 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 28 février 2007 124
10 mars 2005 à 12:04
OUh la !
Alors si tu veux de la rapidité d'affichage, mais lent au chargement, il faut que tu genere TOUTES les 2èmes et 3èmes liste deroulantes possibles, et que tu les mette en style="display: hidden"
Et dans ta premiere, tu mets un :
OnChange="getelementbyid['liste1'+this.selectedIndex].style.display=block"

Ou un truc du genre...
Va voir la source de la partie photos de http://graffinlyon.free.fr
Il y a un systeme comme ca.

Sinon, tu devras recharger ta page a chaque OnChange en lui passant le parametre de ta liste. Mais c'est très chiant pour l'utilisateur qui se gourre de ligne ou qui utilise la molette.

Je te conseille donc la premiere solution.
0
Merci encore pour tes réponsse, mais c'est justement ç que je ne veux pas faire car j'ai plus de 10000 élément dans les 2 et 3eme listes ca qui me donerais trop de code et surtout un application non maintenable.

J'ai donc fait comme je l'ai cité dessus. C'est lent, mais, hélas, c'est la seul solution.

Merci pour les réponsses.
0