08. marts 2002 - 13:50Der er
13 kommentarer og 1 løsning
Hente data fra to tabeller til 1 drop down boks
Jeg har en redigeringsside i asp som viser poster fra en accessdatabase. Her kan folk rette i oplysningerne. Men jeg vil gerne have at f.eks. mit navnefelt er en dropdown boks, som udover at vise navnet som hører til posten, også viser en navneliste fra en anden tabel, så brugeren kan vælge et andet navn, hvis ønsket.
Hvordan gør jeg det ? (Håber spørgsmålet er til at forstå :o)
her er hvordan amn laver en dropdownliste der også viser den der er valgt.
<% strSelected = RS("navn") ' Valgte navn fra tabel 1
' Vis dropdownliste Response.Write("<select name='EditListe' size='1'>") Set RS1 = Conn.Execute("SELECT navn FROM tabelnavne") ' Find navneliste fra tabelnavne Do While Not RS1.EOF if RS1 = strSelected then ' Er det denne der er valgt i listen Response.Write("<option selected value='" & RS1("navn") & "'>" & RS1("navn") & "</option>") else Response.Write("<option value='" & RS1("navn") & "'>" & RS1("navn") & "</option>") end if RS1.MoveNext Loop Response.Write("</select>") %>
Jeg kan ikke uddybe det nærmere da jeg ikke ved hvordan du gemmer hanvet i tabel1. Er det som tekst eller et Tal som refererer til tabelnavne
Jeg gemmer ikke id numrene, men selve navnet i tabel 1. Jeg har lige prøvet din kode, men får kun en tom boks. Det er sikkert mig der har gjort noget forkert... Må prøve igen :o)
Der er også en "UPS" i koden. Denne linie: if RS1 = strSelected then ' Er det denne der er valgt i listen Skal ændres til: if RS1("navn") = strSelected then ' Er det denne der er valgt i listen
Jeg har prøvet at gøre som du skriver, men får stadig kun en tom boks og samtidig forsvinder de felter som kommer efter boksen. Hvad mon jeg gør galt ?
Ja, men så langt har jeg forstået det. De felter der forsvinder nedenunder er på adresse osv. og min submit knap forsvinder også. Det forstår jeg ikke rigtigt. Er det muligt at det er loopet, der aldrig stopper ? (Er meget glad for din hjælp, selv om jeg er lidt tungnem :o)
<!--webbot bot="DatabaseRegionStart" startspan s-columnnames="Adresse_id,Navn,Adresse" s-columntypes="3,200,200" s-dataconnection="Adresseforsog" b-tableformat="FALSE" b-menuformat="FALSE" s-menuchoice s-menuvalue b-tableborder="TRUE" b-tableexpand="TRUE" b-tableheader="TRUE" b-listlabels="TRUE" b-listseparator="TRUE" i-ListFormat="7" b-makeform="TRUE" s-recordsource="tbl_Adresse" s-displaycolumns="Navn,Adresse,Adresse_id" s-criteria s-order s-sql="SELECT * FROM tbl_Adresse" b-procedure="FALSE" clientside SuggestedExt="asp" s-DefaultFields s-NoRecordsFound="Der er ikke blevet returneret nogen poster." i-MaxRecords="256" i-GroupSize="1" BOTID="0" u-dblib="../../../_fpclass/fpdblib.inc" u-dbrgn1="../../../_fpclass/fpdbrgn1.inc" u-dbrgn2="../../../_fpclass/fpdbrgn2.inc" tag="BODY" local_preview="<table border=0 width="100%"><tr><td bgcolor="#FFFF00" align="left"><font color="#000000">Områderne med databaseresultater kan kun vises, hvis siden hentes fra en Web-server med en Web-browser. Det afsnit på siden, der indeholder databaseresultater, gentages én gang for hver post, som returneres af forespørgslen.</font></td></tr></table>" preview="<table border=0 width="100%"><tr><td bgcolor="#FFFF00" align="left"><font color="#000000">Dette er begyndelsen af området med databaseresultater.</font></td></tr></table>" --><!--#include file="../../../_fpclass/fpdblib.inc"--> <% fp_sQry="SELECT * FROM tbl_Adresse" fp_sDefault="" fp_sNoRecords="Der er ikke blevet returneret nogen poster." fp_sDataConn="Adresseforsog" fp_iMaxRecords=256 fp_iCommandType=1 fp_iPageSize=1 fp_fTableFormat=False fp_fMenuFormat=False fp_sMenuChoice="" fp_sMenuValue="" fp_iDisplayCols=3 fp_fCustomQuery=False BOTID=0 fp_iRegion=BOTID %> <!--#include file="../../../_fpclass/fpdbrgn1.inc"--> <!--webbot bot="DatabaseRegionStart" i-CheckSum="61115" endspan --> <form METHOD="POST" action="Adresseforsog_UPDATE.asp"> <!--webbot bot="PurpleText" PREVIEW="Angiv egenskaberne for formularen, så den sender input fra brugerne til den rigtige side." --> <table BORDER="0"> <tr> <td><b>Navn:</b></td> <td> <% strSelected = fp_RS("Navn") ' Valgte navn fra tabel 1
' Vis dropdownliste Response.Write("<select name='Navnefelt' size='1'>") Set RS1 = Conn.Execute("SELECT Navn FROM tbl_navn") ' Find navneliste fra tabelnavne Do While Not RS1.EOF if RS1("Navn") = strSelected then ' Er det denne der er valgt i listen Response.Write("<option selected value='" & RS1("Navn") & "'>" & RS1("Navn") & "</option>") else Response.Write("<option value='" & RS1("Navn") & "'>" & RS1("Navn") & "</option>") end if RS1.MoveNext Loop Response.Write("</select>") %>
Linie 56 er jo netop den linie du skulle ændre til:
strSelected = ""
der står jo ikke noget om 'rs'
I øvrigt kan jeg se at du anvender fp_rs længere nede i koden. Det betyder at ovenstående linie kan ændres til dette:
strSelected = FP_FieldHTML(fp_rs,"navn")
jeg håber du er med. Hvis du skal anvende felter fra udtrækket: fp_rs skal du ikke anvende fp_rs("navn") men en funktion der hedder: FP_FieldHTML(fp_rs,"navn")
Har prøvet med strSelected = "" Det gør bare ingen forskel. Og jeg forstår stadig ikke hvorfor det resulterer i at resten af min formular "forsvinder". Nå, jeg er nok bare en klovn :o( Men tusind tak for din hjælp. Du får pointene for dit besvær, det fortjener du :o)
Nej - dit største problem er at du forsøger arbejde videre med en kode der er dannet af frontpage. Hvis du skal kunne gøre det - skal du vide nøjagtig hvordan frontpage danner koden og det er vist et større kursus - hvis nogen overhovedet ved det.
Hejsa Jeg har lige prøvet den kode af som coltau skrev tidligere. Jeg får også type mismatch når jeg bruger rs("navn"), men bruger jeg "" virker min kode fint. Har det nogen stor betydning af jeg bare bruger "" ?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.