29. marts 2003 - 00:11Der er
2 kommentarer og 1 løsning
HJÆLP - opdater side når man har valgt
dette lister alle menupunkter og undermenupunkter fra databasen. MEN jeg vil gerne have at undermenupunter KUN er dem som tilhøre det valgte menupunkt. DVS når man har valgt menupunkt skal siden opdateres så man kun ser de undermenupunter der findes til netop dette menupunkt. ......................... (stor kode derfor 200 point)
<table border="1" cellspacing="1" width="442" id="AutoNumber1" bordercolorlight="#000080" bordercolordark="#000080" height="46"> <tr><td width="126" bgcolor="#000080" height="22"><font color="#FFFFFF">Hoved menupunkt</font></td> <td width="313" height="22"><select size="1" name="menupunkt"> <%' SQL forespørgsel strSQL = "Select * from menupunkter where menupunkter is not null order by menupunkter" ' Udfør forespørgsel (rs indeholder nu resultatet) Set rs = Conn.Execute(strSQL) ' Gennemløb Recordset (rs) med en løkke Do %> <option><% = rs("menupunkter")%></option> <%' Gå til næste Record i rs rs.MoveNext ' Fortsæt indtil rs er gennemløbet (EOF = End Of File) Loop While Not rs.EOF %> </select> </td></tr> <tr><td width="126" bgcolor="#000080" height="1"><font color="#FFFFFF">Under menupunkt</font></td> <td width="313" height="1"><select size="1" name="undermenupunkt"> <%' SQL forespørgsel strSQL = "Select * from menupunkter where undermenupunkter is not null order by undermenupunkter" ' Udfør forespørgsel (rs indeholder nu resultatet) Set rs = Conn.Execute(strSQL) ' Gennemløb Recordset (rs) med en løkke Do %> <option><% = rs("undermenupunkter")%></option> <%' Gå til næste Record i rs rs.MoveNext ' Fortsæt indtil rs er gennemløbet (EOF = End Of File) Loop While Not rs.EOF %> </select> </td></tr> </table>
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du har forhåbenligt et eller andet i "menupunkter" tabellen som fortæller hvilket menupunkt dit undermenupunkt hører til.
Hvis ja, så skal du bare nøjes med at udvælge de underpunkter der hører til aktuelt menupunkt. I nedenstående kode har jeg bare ladet som om at feltet menupunkter også står på dine undermenupunkter.
Desuden har jeg flyttet din "while not rs.eof" op til Do, så den ikke fejler hvis der slet ingen data er.
<table border="1" cellspacing="1" width="442" id="AutoNumber1" bordercolorlight="#000080" bordercolordark="#000080" height="46"> <tr><td width="126" bgcolor="#000080" height="22"><font color="#FFFFFF">Hoved menupunkt</font></td> <td width="313" height="22"><form action="siden.asp" method="post"><select size="1" name="menupunkt" onchange="this.form.submit()"> <% ' Hent det aktuelle menupunkt ' Erstat ' men '', så det ikke giver problemer i databasen CurrentMenupunkt=Replace(Request.Form(menupunkt),"'","''") ' SQL forespørgsel strSQL = "Select * from menupunkter where menupunkter is not null order by menupunkter" ' Udfør forespørgsel (rs indeholder nu resultatet) Set rs = Conn.Execute(strSQL) ' hvis vi ikke har et menupunkt fra Request, så vælg det første if Not rs.EOF and CurrentMenupunkt="" then CurrentMenupunkt=rs("menupunkter") end if ' Gennemløb Recordset (rs) med en løkke ' så længe rs ikke er EOF = End Of File Do While Not rs.EOF %><option <% ' Set det nuværende menupunkt som selected if "" & rs("menupunkt")=CurrentMenupunt then %>selected<% end if %>><% = rs("menupunkter")%></option><% ' Gå til næste Record i rs rs.MoveNext Loop rs.Close %></select></form></td></tr> <tr><td width="126" bgcolor="#000080" height="1"><font color="#FFFFFF">Under menupunkt</font></td> <td width="313" height="1"><select size="1" name="undermenupunkt"><% ' SQL forespørgsel strSQL = "Select * from menupunkter where undermenupunkter is not null and menupunkter='" & CurrentMenupunkt & "' order by undermenupunkter" ' Udfør forespørgsel (rs indeholder nu resultatet) Set rs = Conn.Execute(strSQL) ' Gennemløb Recordset (rs) med en løkke Do While Not rs.EOF %><option><% = rs("undermenupunkter")%></option><% ' Gå til næste Record i rs rs.MoveNext ' Fortsæt indtil rs er gennemløbet (EOF = End Of File) Loop %></select> </td></tr> </table>
Den første "tomme" indeholder nok en fejl. Vis - Kilde - så vil du sikkert kunne se at filen ender med en ado-fejl. if "" & rs("menupunkt")=CurrentMenupunt then skal være if "" & rs("menupunkter")=CurrentMenupunt then
Noget andet: Hvis du har det hele i samme tabel (du bør lave en opdeling, så menupunkter er i en tabel og varer i en anden), så skal du bruge distinct i udvælgelsen. Ellers får du samme menupunkt flere gange.
strSQL = "Select distinct menupunkter from menupunkter where menupunkter is not null order by menupunkter" og strSQL = "Select distinct menupunkter, undermenupunkter from menupunkter where undermenupunkter is not null and menupunkter='" & CurrentMenupunkt & "' order by undermenupunkter"
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.