Avatar billede simsen Mester
17. marts 2006 - 01:01 Der er 3 kommentarer og
1 løsning

forespørgsel til dropdown fra to tabeller

Fortsættelse på min dropdown funktion fra: http://www.eksperten.dk/spm/695636

Jeg vil nu gerne have, at står der noget i MenuNavn i tblPages tabellen, skal den skrive den i dropdown menuen (som kommer fra Menu tabellen) som selected

Når jeg bruger nedenviste kode sker der følgende:

Når der står noget i MenuNavn i tblPages, viser den IKKE denne som selected, når jeg går ind på edit siden (som jeg jo gerne vil have den skal). Ændrer jeg navn i dropdown boksen reloader den korrekt og beholder korrekt den ændrede navn.

Når der ikke står noget i MenuNavn i tblPages, viser den den første felt i dropdown boksen. Ændrer jeg navn i dropdown boksen reloader den IKKE korrekt men går tilbage til første felt igen efter reload

Kan nogen hjælpe mig med at få til at virke?

Koden er:

<%
menu = request.Form("menu")
%>
<form action="editpage.asp?ID=<%=ID%>" method="post" name="Menu">
    <select name="Menu" size="1" onChange="document.Menu.submit()">

      <!-- <option value="vælg">Vælg menu</option> -->
    <%
        Set menuRS = Server.CreateObject("ADODB.RecordSet")
        menuSQL = "Select MenuNavn FROM Menu"
        'Response.Write menuSQL
        menuRS.Open menuSQL, whtConn, 1

                set tblRS = Server.CreateObject("ADODB.RecordSet")

                tblSQL = "Select MenuNavn FROM tblPages where ID = " & ID & ";"
                tblRS.Open tblSQL, whtConn, 1

      %>
  <%
        if tblRS("MenuNavn") <> "" then
            Do While Not menuRS.EOF
                if menu = menuRS("MenuNavn") then
              valg = " selected"
          else
            valg = ""
          end if
    %>
            response.write "<option value="<%=menuRS("MenuNavn")%>" <%=valg%>><%=MenuRS("MenuNavn")%></option>"
      <%
        MenuRS.MoveNext
        Loop
        MenuRS.Close
      %>

    <%
        else
            Do While Not menuRS.EOF
                if menu = menuRS("MenuNavn") then
              valg = " selected"
          else
            valg = ""
          end if
    %>
            response.write "<option value="<%=tblRS("MenuNavn")%>"<%=valg%>><%=menuRS("MenuNavn")%></option>"   
      <%
        MenuRS.MoveNext
        Loop
        MenuRS.Close
      %>   
    <%   
        end if
  %>

     

  </select>

<%
                Response.write "Menunavn: "
                Response.write tblRS("MenuNavn")
            tblRS.Close
%>

</form>
Avatar billede fennec Nybegynder
17. marts 2006 - 08:32 #1
Jeg må indrømme at jeg ikke helt forstår hvordan Menu og tblPages hænger sammen, så dette er et skud i tågen:

<form action="editpage.asp?ID=<%=ID%>" method="post" name="Menu">
    <select name="Menu" size="1" onChange="document.Menu.submit()">

      <!-- <option value="vælg">Vælg menu</option> -->
<%
Set menuRS = Server.CreateObject("ADODB.RecordSet")
menuSQL = "Select MenuNavn FROM Menu"
'Response.Write menuSQL
menuRS.Open menuSQL, whtConn, 1
set tblRS = Server.CreateObject("ADODB.RecordSet")
tblSQL = "Select MenuNavn FROM tblPages where ID = " & ID & ";"
tblRS.Open tblSQL, whtConn, 1
Do While Not menuRS.EOF
    if request.Form("menu") <> "" then
        menu = request.Form("menu")
    else
        menu = tblRS("MenuNavn")
    end if
    if menu = menuRS("MenuNavn") then %>
<option value="<%=menuRS("MenuNavn")%>" selected><%=MenuRS("MenuNavn")%></option>
<%    else %>
<option value="<%=menuRS("MenuNavn")%>"><%=MenuRS("MenuNavn")%></option>
<%    end if
    MenuRS.MoveNext
loop
%>
</select>

</form>
Avatar billede simsen Mester
17. marts 2006 - 08:49 #2
fennec

Af én der ikke helt forstår hvordan Menu og tblPages hænger sammen, har du gjort mig til en meget glad kvinde - tak. Smid et svar og pontsene er dine :-)

Forklaring til Menu og tblPages:

Menu er tabellen med selve menunavnene
tblPages er tabellen hvor de enkelte sider ligger, hvor jeg så skal have linket dem sammen til de forskellige menunavne.

Og som du så kan nok kan gætte dig til, så skal jeg også have lavet dette her med UnderMenu tabellen. Jeg vil først selv rode med den, inden jeg råwer hjælp herinde igen. Ellers lærer jeg ikke noget af det jo

mvh
simsen
Avatar billede fennec Nybegynder
17. marts 2006 - 09:06 #3
Jeg har efter hånden set mange mærkelige DB opbygninger herinde, så man kan aldrig være sikker på om spørgeren har lavet DB'en på en fornuftig måde, men jeg gik ud fra du havde lavet det rigtigt :o)

Du kunne dog optimere din DB, ved at knytte tabellerne sammen på menuId'et i stedet menuNavnet. Det er hurtigere at søge/sammenligne tal end tekst...

.o) <-- One Eyed Jack
Avatar billede simsen Mester
17. marts 2006 - 09:15 #4
Jeg havde faktisk også oprettet Menu tabellen med id (autonummer) - men andre steder på min side, fik jeg problemer, så jeg gik bort fra denne løsning.

Men tak for tippet :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester