06. august 2003 - 16:26Der er
32 kommentarer og 1 løsning
Dropdown med kort beskrivelse nedenunder (databasestyret)
Hvordan kan man lave et script/asp-kald, hvor man henter afdelinger ind i en dropdownmenu og så nedenunder står der en beskrivelse?
Jeg har databasen [ID] [Betegnelse] [Beskrivelse]
Jeg har også lavet dropdown-delen: <option value="vælg">Vælg afdeling</option> <% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open Session("ConnectionString") sql="SELECT Distinct Betegnelse From Afdeling Where Prioritet = 1 ORDER BY betegnelse" set rs = conn.execute(sql) Do While Not rs.EOF %> <option value="inc_opgave.asp.asp?ansvarlig=<%=betegnelse%>" "selected"><%=betegnelse%></option> <% rs.MoveNext Loop rs.Close %> </select>
Jeg vil så have tilføjet, så når man har valgt et punkt i Dropdown'en, så skal der komme en beskrivende tekst af det valgte (altså inden man affyrer formen)
Hvis betegnelsen kan tåle at være javascript-variabel (ingen mellemrum, æøå, kommaer ol. _kun_ bogstaver/tal + _ -- og tal må ikke være forrest!-), kan du jo lave en lille javascript-database og kalde den onchange:
<script language="javascript" type="text/javascript"> var beskr = new Array(); <% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open Session("ConnectionString") sql="SELECT Distinct Betegnelse, Beskrivelse From Afdeling Where Prioritet = 1 ORDER BY betegnelse" set rs = conn.execute(sql) Do While Not rs.EOF %> beskr[<%=betegnelse%>] = <%=beskrivelse%>; <% rs.MoveNext Loop rs.Close %> </script>
-- og måske er det mere opportunt at bruge en span og innerHTML -- og der mangler også standard-værdien, som enten skal hentes onload eller sættes vha. en variabel fra den kode som genererer options ...
Men det tror jeg du selv kan klare -- eller også skal jeg lige have nogle stumper kode mere !-)
klarede den uden problemer -- så jeg ved ikke hvor grænsen for tekst-strenge findes i den sammenhæng, men alle dine tilfælde skulle ihvertfald virke !-)
-- og så opdagede jeg jo lige en fejl ved denne gennemgang:
hmm - jeg kan squdde få det til at virke.. Nu er jeg heller ike enørn til javascript --------------------------------------- <script language="javascript" type="text/javascript"> var beskr = new Array(); <% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open Session("ConnectionString") sql="SELECT Distinct Betegnelse, Beskrivelse From Afdeling Where Prioritet = 1 ORDER BY betegnelse" set rs = conn.execute(sql) Do While Not rs.EOF %> beskr['<%=betegnelse%>'] = '<%=beskrivelse%>'; <% rs.MoveNext Loop rs.Close %> </script>
<select name="sel" onchange="document.getElementById('beskrivelse').value=beskr[this.options[selectedIndex].text];"> <option value="vælg">Vælg afdeling</option> <% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open Session("ConnectionString") sql="SELECT Distinct Betegnelse From Afdeling Where prioritet = 1 ORDER BY Betegnelse" set rs = conn.execute(sql) Do While Not rs.EOF %> <option value="<%=rs("Betegnelse")%>" "selected"><%=rs("Betegnelse")%></option> <% rs.MoveNext Loop rs.Close conn.close %> </select>
OK - jeg har lavet en <span id="beskrivelse">, men der kommer ingen beskrivelse . Jeg får ingen fejl på siden, og jeg får da også dropdown med stadig. Nu spørger jeg måske dumt, meeeen... Skal din kode i <Head>-tagget? For jeg benytter siden som en includefil
æv - det virker stadig ikke ... "undefined", står der, når man vælger et punkt. Vil du have mere kode ? Det skal lige siges at det er op imod en SQL database, hvis det ændrer noget
</td> </tr> <tr> <td class="rightmenuTxt">Der er i alt 171 opgaver, der ikke er afsluttet pr. 07-08-2003.<br> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td> <!-- menuen SLUT -->
<table border="0" cellpadding="0" cellspacing="3" width="100%" bordercolor="#000000" bgcolor=#FFFFFF> <tr> <td> <p class="TblHeader">Du er nu ved at oprette en opgave</p> <p class="TblTxtBld">Vælg venligst den afdeling, du ønsker at tildele opgaven</p> </td> </tr> <tr> <td class="TblTxtBld">
<script language="javascript" type="text/javascript"> var beskr = new Array();
Måske er nødvendigt at neste forespørgslen, for jeg har ikke den fjerneste anelse om 'Distinct' kan have nogen betydning ...
sql="SELECT Distinct Betegnelse, Beskrivelse From Afdeling Where Prioritet = 1 ORDER BY betegnelse"
-- Eller måske er det store/små bogstaver ?-)
-- I din oprindelige havde du henvisningerne til asp-variablerne med småt, men med stort i SQL-sætningen, så jeg gik ud fra at det var ligegyldigt, men den kører tydeligvis forespørgslen og det er næsten korrekt output, så prøv lige med:
<script language="javascript" type="text/javascript"> var beskr = new Array(); <% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open Session("ConnectionString") sql="SELECT Distinct Betegnelse, Beskrivelse From Afdeling Where Prioritet = 1 ORDER BY betegnelse" set rs = conn.execute(sql) Do While Not rs.EOF %> beskr['<%=Betegnelse%>'] = '<%=Beskrivelse%>'; <% rs.MoveNext Loop rs.Close %> </script>
men til målet kom vi - jeg opretter i øvrigt et nyt spørgsmål, for den skal forlænges således at det valgte i dropdownmenuen skal udløse et nyt kald til en ny dropdownmenu med kategorier. Hvis du kan hjælpe der også vil jeg være (omend muligt) mere taknemmelig ;)
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.