Pb Formulaire en asp et vbscript.

warrax - 5 mai 2001 à 12:59
 jeromax - 7 mai 2001 à 12:51
Bonjour,

Je voudrais faire apparaitre un menu deroulant en fonction du choix d'un autre menu deroulant. C-a-d, j'ai une base de donnees d'ou je tire des informations (ville, arrondissement, ...) via des requetes. J'obtiens la liste des villes de cette base que j'affiche dans le premier menu deroulant. En fonction du choix d'un utilisateur je voudrais faire apparaitre le menu deroulant concernant l'arrondissement. Par ex, si dans mon 1er menu je choisi Paris je desire faire apparaitre le menu arrondissement avec la liste des arrondissements de paris. Cependant je voudrais aussi que cette liste vienne de la base car je ne veux pas forcement tout les arrondissements.

source actuel :

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "base"

sqlville = "select ville from archive group by ville"
set RSville = Conn.Execute(sqlville)
RSville.movefirst
sqlarr "select arrondissement from archive where ville '" &Request.Form("ListeVil") &"' group by arrondissement"
set RSarr = Conn.Execute(sqlarr)
RSarr.movefirst

<html>

<head>
<meta name="VI60_defaultClientScript" content="VBScript">
<meta NAME="GENERATOR" Content="Microsoft FrontPage 4.0">
</head>

<%'=sqlville%>

<%'=sqlarrondissement%>

<form ACTION="recherche.asp" METHOD="post" id="form1" name="form1">

<table border="0" cellspacing="5" align="center" cellpadding="0">
----,
Ville

</td>
<select name="ListeVil">
<option selected value="*">Sélectionnez ... <% while not RSville.eof %>
<option value="<%=RSville("ville")%>"><%=RSville("ville")%> <%
RSville.movenext
wend
RSville.close
%>
</select>,

Arrondissement

,
<select name="ListeArr">
<option selected value="*">Sélectionnez ... <% while not RSarr.eof %>
<option value="<%=RSarr("arrondissement")%>"><%=RSarr("arrondissement")%> <%
RSarr.movenext
wend
RSarr.close
%>
</select>

</td>
</tr>
</table>

</form>

</html>

Merci d'avance

Warrax

1 réponse

Je connais 2 solutions pour ton probleme, la premiere c'est de rafraichir toute ta page sur le onchange de ta premiere liste, en passant les parametres dans l'url, ça ne pose aucun probleme, par contre si tu dois afficher un nombre important d'enregistrements, l'utilisateur va en avoir marre d'attendre 3 minutes à chaque fois qu'il va changer la selection de la liste=> re-téléchargement des 2 listes!!

La 2ieme solution qui est nettement plus propre mais aussi beaucoup plus technique est de rafraichir juste la 2ieme liste (toujours sur le onchange). Cette technique que j'ai découvert il y a quelque mois, permet de programmer "finement", elle permet de rafraichir uniquement une partie de la page.
Elle marche pour tous types de changement ,avec requete dans la base et tout et tout. Mais bon vu que je n'ai encore rencontré personne qui utilisait ce procédé, et que je vais sans doute changer de boulot dans peu de temps, je la garde sous le coude pour le moment. Désolé, mais elle arrivera sur ce site sans doute dans quelque temps.
0
Rejoignez-nous