Liste deroulante liee à une base de donnees

cs_ratch Messages postés 18 Date d'inscription dimanche 15 octobre 2000 Statut Membre Dernière intervention 13 juin 2002 - 5 juin 2002 à 17:36
boreuxc Messages postés 20 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 5 janvier 2006 - 7 avril 2004 à 11:09
Bonjour,

J'ai une liste déroulante contenant differents choix possibles. Ces choix sont liés à aux champs d'une base de donnees et à des criteres precedemment sélectionnes.

Je souhaiterai ajouter une possibilité à cette liste deroulante. Ce serai "ne pas faire de choix pour ce critere". Ce la permettrai de rendre cette liste deroulante de mon formulaire facultative.

Est ce possible ?
et pouvez vous me dire comment faire, etant donnee que ma liste déroulante et liee à ma base de donnees.

Merci beaucoup pour votre aide
Sincèrement
Ratch

14 réponses

cs_Mcjo Messages postés 403 Date d'inscription dimanche 12 août 2001 Statut Membre Dernière intervention 3 septembre 2012 2
5 juin 2002 à 21:13
ben tu fais comme ca
<SELECT name="toto">
<option></option>
<%while not rs.eof%>
<option><%=rs("mon_champ")%></option>
<%rs.movenext
wend%>
</select>
0
cs_ratch Messages postés 18 Date d'inscription dimanche 15 octobre 2000 Statut Membre Dernière intervention 13 juin 2002
5 juin 2002 à 21:40
Bonsoir et merci de ton aide,

Actuellement voici le scipt que j'ai :

<select name="titre">
<option selected>Choisissez un titre</option>
<%
if not rs_titre.bof and not rs_titre.eof then
do while not rs_titre.eof
response.write("<option value="""&rs_titre.fields("id_titre")&""">"&rs_titre.fields("nom_titre")&"</option>"&vbcrlf)
rs_titre.movenext
loop
end if
%>
</select>

Que dois je modifier exactement ?

(je reprend un site fait par quelqu'un d'autre,
c'est dur dur !!)

Merci
Ratch
0
cs_Mcjo Messages postés 403 Date d'inscription dimanche 12 août 2001 Statut Membre Dernière intervention 3 septembre 2012 2
5 juin 2002 à 22:51
ben rien du tout si la personne reste sur "Choisissez un titre", la valeur titre reste nule, tu peux por contre rajouter optionnel
0
cs_Mcjo Messages postés 403 Date d'inscription dimanche 12 août 2001 Statut Membre Dernière intervention 3 septembre 2012 2
6 juin 2002 à 01:39
oki j'avais pas tout compris
fait ca
<select name="titre">
<option value="ne pas faire de choix pour ce critere" selected>ne pas faire de choix pour ce critere</option>
<%
if not rs_titre.bof and not rs_titre.eof then
do while not rs_titre.eof
response.write("<option value="""&rs_titre.fields("id_titre")&""">"&rs_titre.fields("nom_titre")&"</option>"&vbcrlf)
rs_titre.movenext
loop
end if
%>
</select>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ratch Messages postés 18 Date d'inscription dimanche 15 octobre 2000 Statut Membre Dernière intervention 13 juin 2002
6 juin 2002 à 13:00
Merci mais ca ne fonctionne pas,
je pense qu'il faut aussi modifier la page "résultat" (celle qui recoit le formulaire)

VOILA CE QUE J'AI :
...
sql_titre="select * from titre where id_titre="&id_titre
rs_titre.open sql_titre,conn,3,1
if not rs_titre.bof and not rs_titre.eof then titre=rs_titre.fields("nom_titre")
...
set rs=server.createobject("ADODB.Recordset")
sql="SELECT nom_veterinaire, adresse, ville, lien, id_activite ,departement.id_departement as toto " _
&"FROM ((veterinaire_departement INNER JOIN veterinaire ON veterinaire_departement.id_veterinaire " _
&"= veterinaire.id_veterinaire) INNER JOIN departement ON veterinaire_departement.id_departement " _
&"= departement.id_departement) INNER JOIN veto_depart_activite ON veterinaire_departement.id_veto_depart " _
&"= veto_depart_activite.id_veto_depart WHERE (((veterinaire_departement.id_departement) in ("&id_departement&")) AND " _
&"((veterinaire.id_titre)="&id_titre&") AND ((veto_depart_activite.id_activite)="&id_activite&"));"
rs.open sql,conn,3,1
%>
<table border="0" cellspacing="5" cellpadding="5">
<%if not rs.bof and not rs.eof then
do while not rs.eof%>
<tr>
<td><%=rs.fields("nom_veterinaire")%></td>
<td><%=rs.fields("adresse")%></td>
<td><%=rs.fields("ville")%></td>
<td><%=rs.fields("lien")%></td>
</tr>
<%
rs.movenext
loop
else%>
<tr>
<td>Il n' y a pas d'enregistrement pour ce titre.</td>
</tr>
<%end if%>

Je te remercie pour ton aide,
je reprend un site commencer par quelqu'un d'autre (personne que je n'arrive pas à joindre) et j'ai cette modification à faire.

Cordialement
Ratch
0
cs_Mcjo Messages postés 403 Date d'inscription dimanche 12 août 2001 Statut Membre Dernière intervention 3 septembre 2012 2
6 juin 2002 à 14:54
je supose que id_titre est un numero auto
donc si tu fais ca
<select name="titre">
<option value=0 selected>titre optionnel</option>
<%
if not rs_titre.bof and not rs_titre.eof then
do while not rs_titre.eof
response.write("<option value="""&rs_titre.fields("id_titre")&""">"&rs_titre.fields("nom_titre")&"</option>"&vbcrlf)
rs_titre.movenext
loop
end if
%>
</select>
normalement d'apres ta requette (dernier message) ca va renvoyer : aucune inof sur ce titre
si c'est pas ce que tu veux met moi le formulaire de depart et ce que ca doit faire si le titre n'est pas selectionner
dans ta page de reception de titre tu peux ne pas ouvrir la bdd si id_titre = 0
et mettre un message du genre non demander ou quelque comme ca chose
0
xena495 Messages postés 3 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 7 juin 2002
6 juin 2002 à 16:32
Non, ce n'est pas ce que je souhaite.
En fait, je voudrais que lorqu'on valide le formulaire, il affiche tous les résultats sans tenir compte de ce dernier critère.

Le 1er critère est : l'activité
Le second : le département
Le 3ème : le titre.
Je voudrais qu'il soit possible de ne faire une recherche qu'en sélectionnant une activité et un département (en ne sélectionnant rien dans la liste déroulante "titre")

Voici la page ou se trouve le formulaire, ce sera surement plus clair comme ca :
http://www.efrance.fr/afve/afve/fr/experts.asp

Merci beaucoup pour ton aide
Ratch
0
cs_Mcjo Messages postés 403 Date d'inscription dimanche 12 août 2001 Statut Membre Dernière intervention 3 septembre 2012 2
6 juin 2002 à 17:11
oki ben c'est pas tres compliquer
bon donc dans ton formulaire tu as des textes et des menu deroulant ou des menu c'est ca?
donc il faut pour les menus toujour une option vide
tu modifie ta requette sql
sql="SELECT nom_veterinaire, adresse, ville, lien, id_activite ,departement.id_departement as toto " _
&"FROM ((veterinaire_departement INNER JOIN veterinaire ON veterinaire_departement.id_veterinaire " _
&"= veterinaire.id_veterinaire) INNER JOIN departement ON veterinaire_departement.id_departement " _
&"= departement.id_departement) INNER JOIN veto_depart_activite ON veterinaire_departement.id_veto_depart " _
&"= veto_depart_activite.id_veto_depart "

sql_dep = ""
sql_vet = ""
sql_act = ""

if id_departement & "" <> "" then
sql_dep = "(veterinaire_departement.id_departement in "&id_departement&")"
end if
if id_titre & "" <> "" then
sql_vet = "(veterinaire.id_titre="&id_titre&")"
end if
if id_activite & "" <> "" then
sql_act = "(veto_depart_activite.id_activite="&id_activite&")"
end if
sql2 = ""
if sql_dep & sql_vet & sql_act <> "" then sql2="WHERE " & sql_dep
if sql_dep <> "" then
sql2 = sql2 & " AND " & sql_vet
else
sql2 = sql2 & sql_vet
end if
if sql_dep & sql_vet <> "" then
sql2 = sql2 & " AND " & sql_act
else
sql2 = sql2 & sql_act
end if
sql2 = sql2 & ";"

sql = sql & sql2

ca devrait marcher
0
cs_ratch Messages postés 18 Date d'inscription dimanche 15 octobre 2000 Statut Membre Dernière intervention 13 juin 2002
7 juin 2002 à 15:02
Désolé mais ca ne marche pas :

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][Pilote ODBC Microsoft Access] Opérateur In sans () dans l'expression '(veterinaire_departement.id_departement in 5) AND (veterinaire.id_titre=47) AND (veto_depart_activite.id_activite=2)'.

/afve/afve/fr/resultat.asp, line 196

C'est surement moi qui est fait une erreur quelque part. Si je récapitule, à la page du formulaire j'ai :

<%
set rs_titre=server.createobject("ADODB.Recordset")
sql_titre="select * from titre order by nom_titre"
rs_titre.open sql_titre,conn,3,1
%>
...
<select name="titre">
<option value="ne pas faire de choix pour ce critere" selected>ne pas faire de choix pour ce critere</option>
<%
if not rs_titre.bof and not rs_titre.eof then
do while not rs_titre.eof
response.write("<option value="""&rs_titre.fields("id_titre")&""">"&rs_titre.fields("nom_titre")&"</option>"&vbcrlf)
rs_titre.movenext
loop
end if
%>

et dans la page de résultat :

set rs=server.createobject("ADODB.Recordset")
sql="SELECT nom_veterinaire, adresse, ville, lien, id_activite ,departement.id_departement as toto " _
&"FROM ((veterinaire_departement INNER JOIN veterinaire ON veterinaire_departement.id_veterinaire " _
&"= veterinaire.id_veterinaire) INNER JOIN departement ON veterinaire_departement.id_departement " _
&"= departement.id_departement) INNER JOIN veto_depart_activite ON veterinaire_departement.id_veto_depart " _
&"= veto_depart_activite.id_veto_depart "

sql_dep = ""
sql_vet = ""
sql_act = ""

if id_departement & "" <> "" then
sql_dep = "(veterinaire_departement.id_departement in "&id_departement&")"
end if
if id_titre & "" <> "" then
sql_vet = "(veterinaire.id_titre="&id_titre&")"
end if
if id_activite & "" <> "" then
sql_act = "(veto_depart_activite.id_activite="&id_activite&")"
end if
sql2 = ""
if sql_dep & sql_vet & sql_act <> "" then sql2="WHERE " & sql_dep
if sql_dep <> "" then
sql2 = sql2 & " AND " & sql_vet
else
sql2 = sql2 & sql_vet
end if
if sql_dep & sql_vet <> "" then
sql2 = sql2 & " AND " & sql_act
else
sql2 = sql2 & sql_act
end if
sql2 = sql2 & ";"

sql = sql & sql2

rs.open sql,conn,3,1
%>
<table border="0" cellspacing="5" cellpadding="5">
<%if not rs.bof and not rs.eof then
do while not rs.eof%>
<tr>
<td><%=rs.fields("nom_veterinaire")%></td>
<td><%=rs.fields("adresse")%></td>
<td><%=rs.fields("ville")%></td>
<td><%=rs.fields("lien")%></td>
</tr>
<%
rs.movenext
...

C'est bien ca qu'il fallait faire ?

Désolé te t'ennuyer encore avec ca!
merci d'avance
0
cs_Mcjo Messages postés 403 Date d'inscription dimanche 12 août 2001 Statut Membre Dernière intervention 3 septembre 2012 2
8 juin 2002 à 16:16
il doit manquer des parenthese dans mon code à la ligne indiqué ou dans celui d'origine regarde à la ligne indiqué

ou essaie de remplacer le "in" dans
if id_departement & "" <> "" then
sql_dep = "(veterinaire_departement.id_departement in "&id_departement&")"
end if
par "="
0
cs_ratch Messages postés 18 Date d'inscription dimanche 15 octobre 2000 Statut Membre Dernière intervention 13 juin 2002
10 juin 2002 à 17:29
Coucou,

Effectivement ca marche maintenant quand on met les critères de la base de données par contre, si on met le critère qui a été ajouté : "ne pas faire de choix pour ce critere"

ca ne fonctionne pas :
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression 'id_titre=ne pas faire de choix pour ce critere'.

/afve/afve/fr/resultat.asp, line 15

(il ne semble pas avoir de problème de syntaxe ligne 15 :
rs_titre.open sql_titre,conn,3,1)

MERCI POUR TON AIDE
RATCH
0
cs_Mcjo Messages postés 403 Date d'inscription dimanche 12 août 2001 Statut Membre Dernière intervention 3 septembre 2012 2
11 juin 2002 à 13:24
remplace
<select name="titre">
<option value="ne pas faire de choix pour ce critere" selected>ne pas faire de choix pour ce critere</option>
par
<select name="titre">
<option value="" selected>ne pas faire de choix pour ce critere</option>
0
cs_ratch Messages postés 18 Date d'inscription dimanche 15 octobre 2000 Statut Membre Dernière intervention 13 juin 2002
11 juin 2002 à 14:10
J'ai toujours le même message d'erreur !

Désolée
ratch
0
boreuxc Messages postés 20 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 5 janvier 2006
7 avril 2004 à 11:09
<select name="titre">
<option value="" selected>ne pas faire de choix pour ce critere</option>
--Ced--
0
Rejoignez-nous