Avatar billede kagge Nybegynder
10. marts 2004 - 13:01 Der er 7 kommentarer

Selectmenu som styrer en anden selectmenu

Jeg skal have lavet en selectmenu som styrer en anden selectmenu. Det vil sige at når jeg foretager et valg i den første, så skal nr. 2 selectmenu indeholde options som passer til valget i selectmenu 1.

Options til begge selectmenuer skal hentes fra en tabel i databasen.

Den første selectmenu har jeg lavet på denne måde:

<SELECT NAME="hovedkoder">
<OPTION></OPTION>
<%

Dim recordSet25
Dim strSQL25

set recordSet25 = server.CreateObject("ADODB.Recordset")

strSQL25 = "SELECT distinct(Hovedkodenr), Hovedkodenavn From Korekortkoder ORDER BY Hovedkodenr"
set recordSet25 = forbindelse.Execute(strSQL25)

do until recordSet25.eof

if xxxx = recordSet25("Hovedkodenr") Then
Response.Write "<option value=" & recordSet25("Hovedkodenr") & " selected>" & recordSet25("Hovedkodenavn") & "</option>"
Else
Response.Write "<option value=" & recordSet25("Hovedkodenr") & ">" & recordSet25("Hovedkodenavn") & "</option>"
end if

recordSet25.movenext
loop
recordSet25.Close

Set recordSet25 = Nothing

%>
</SELECT>

Ovenstående virker fint. Nu er det så at jeg ved hjælp af noget onChange vil have den til at vise en anden selectmenu med indhold som svarer til valget af den første.

Min tabel i basen ser sådan her ud:

Hovedkodenr  Hovedkodenavn    Underkodenr  Underkodenavn
10          10 Gearkasse      10.01        Manuel gear
10        10 Gearkasse      10.02        Automatgear
15          15 Kobling          15.01        Manuel kobling
15        15 Kobling          15.02        Automatisk kobling
osv.
Osv.

Det vil sige at den første selectmenu viser indholdet af kolonnen "Hovedkodenavn" mens den anden selectmenu skal vise indholdet af kolonnen "Underkodenavn" (men kun dem, som hører til den hovedkode som man valgte i selectmenu 1

Siden må desuden ikke reloades.

Som jeg ser det skal det laves lidt som en blanding af ASP og javascript, men ved bare ikke hvordan det gøres.
Avatar billede kagge Nybegynder
10. marts 2004 - 13:03 #1
Der er gået lidt kludder i layoutet af min tabel, men jeg håber at det er til at forstå :)
Avatar billede kelo Nybegynder
10. marts 2004 - 13:08 #2
hovedkodenavn = request.querystring("hovedkodenavn")
if hovedkodenavn <> "" then
  strSQL = "select underkodenr from korekortkode where hovedkodenavn = '"& hovedkodenavn &"' order by underkodenr"
end if

<script language=vbscript>
  function btn_Skole()
    Id = document.all.Hovedkoder.value
    document.url = "xxx.asp?HovedKoder=" &Id       
  end function
</script>
Avatar billede kagge Nybegynder
10. marts 2004 - 13:40 #3
-> Kelo

jeg bruger <SCRIPT LANGUAGE=JAVASCRIPT>

Det var ikke lige på den måde jeg havde forestillet mig det (Jeg vil tro der skal noget mere omfattende kode til at løse min problemstilling)
Avatar billede kelo Nybegynder
10. marts 2004 - 13:55 #4
Avatar billede kagge Nybegynder
11. marts 2004 - 07:25 #5
Jeg synes ikke jeg kan se koden til det eksempel på siden
Avatar billede the_bma_man Nybegynder
01. april 2004 - 08:28 #6
Du skal bruge din onchange - ganske som du selv var inde på.
Her submitter (genlæser) du så siden, og bruger så det valgte fra box 1 som where clause til dit select i box 2.
Avatar billede the_bma_man Nybegynder
01. april 2004 - 08:32 #7
<select NAME="hovedkoder" onchange="window.open(this.options[this.selectedIndex].value,'_top')" size="1">
hvor dine options så ser ud som følger
<option value="Dinside.asp?Hovedkoder=2">Mulighed2</option>
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