09. marts 2003 - 19:56Der er
9 kommentarer og 1 løsning
Fra select til input
Hejsa,
Jeg har en drop down boks på min hjemmeside som henter sin data fra en access database... Men jeg skal have lavet lidt om på det :-) Det skal være sådan at så snart man vælger fx. en Toyota i drop down boksen så skal den skrive det ID en Toyota har i et input feldt nede under drop down boksen... Vælger man en anden bil så skal ID´et også ændre sig... Kan det laves ?
Sådan ser min kode ud der henter alle bil mærker fra databasen:
<select name="bilmarke" style="color: #000000; background-color: #ffffff; border: 1px solid #0066CC"> <option value="">-----------------> Vælg Mærke <-----------------</option> <% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../Database/Bodykits.dk/carstyle.mdb") strSQL = "SELECT * FROM biler ORDER BY Bil;" set rs = Conn.execute(strSQL) if rs.EOF then Response.write "<font face=""Arial"" size=""2"" Color=""RED""><center><b>Der er desværre ikke nogle biler i denne kategori endnu.<br>Bodykits.dk beklager!</b></center></font>" else Do Until rs.EOF %> <option value="<%=RS("Bil")%>"><%=RS("Bil")%></option> <% RS.MoveNext Loop end if
AI bliver først for alvor en del af arbejdet, når teknologien integreres i den måde, vi arbejder på. At have adgang til AI betyder ikke nødvendigvis, at medarbejderne er klar til at bruge den.
Først skal du lige flytte lidt rundt på din kode. Det dur jo ikke at skrive "Desværre" teksten inden i din select.
Selve det at skrive id'en over i en input er rimeligt nemt:
Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../Database/Bodykits.dk/carstyle.mdb") strSQL = "SELECT * FROM biler ORDER BY Bil;" set rs = Conn.execute(strSQL) if rs.EOF then Response.write "<font face=""Arial"" size=""2"" Color=""RED""><center><b>Der er desværre ikke nogle biler i denne kategori endnu.<br>Bodykits.dk beklager!</b></center></font>" else %><select name="bilmarke" style="color: #000000; background-color: #ffffff; border: 1px solid #0066CC" onchange="this.form.inputid.value=this.options[this.options.selectedIndex].value"> <option value="">-----------------> Vælg Mærke <-----------------</option> <% Do Until rs.EOF %> <option value="<%=RS("Bil")%>"><%=RS("Bil")%></option> <% RS.MoveNext Loop %></select><% end if
Conn.Close Set Conn = Nothing %><input name="inputid">
Det virker men den skriver ikke ID. Hvis jeg vælger en Toyota så skriver den også Toyota i Input feldet.... Og mit problem er at der i value skal stå <%=RS("Bil")%>
Den skriver det du har i value på din select, hvilket jo er <%=RS("Bil")%> Hvad er du vil have skal stå i input? Er det ID'en for biler-tabellen? Var det ikke nemmere at have den i value på selecten? Du har ikke brug for at bilnavnet står der.
Jeg for jeg skal gemme både ID og BilMærke i databasen... Så den gemmer Bilmærket som den henter select... Og ID´et fra Input boksen... Kan det ikke lade sig gøre sådan ?
Jo - men hvis du allerede har en ID og et bilmærke som passer sammen (i tabellen Biler), så har du ikke behov for at gemme bilnavnet andre steder. Kun ID'en så du kan referere til Biler tabellen. Det andet gør man bare ikke.
Men hvis du absolut gerne vil have det, så sæt det på som en property på dine options, og hent den i stedet for value.
OK - Du kan sætte ID-en ind i Value og hente text over i den anden input.
Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../Database/Bodykits.dk/carstyle.mdb") strSQL = "SELECT * FROM biler ORDER BY Bil;" set rs = Conn.execute(strSQL) if rs.EOF then Response.write "<font face=""Arial"" size=""2"" Color=""RED""><center><b>Der er desværre ikke nogle biler i denne kategori endnu.<br>Bodykits.dk beklager!</b></center></font>" else %><select name="bilmarke" style="color: #000000; background-color: #ffffff; border: 1px solid #0066CC" onchange="this.form.inputid.value=this.options[this.options.selectedIndex].text"> <option value="">-----------------> Vælg Mærke <-----------------</option> <% Do Until rs.EOF %> <option value="<%=RS("ID")%>"><%=RS("Bil")%></option> <% RS.MoveNext Loop %></select><% end if
Conn.Close Set Conn = Nothing %><input name="inputid">
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.