Avatar billede samsayit Nybegynder
25. januar 2003 - 14:38 Der er 8 kommentarer og
1 løsning

Dropdown-menu's indhold afhængig af anden dropdown?

Jeg har en html-form, hvori der er to dropdown-menu'er (select-boxe). I den ene af disse skal man vælge skole-klasse, og indholdet i den anden skal så skifte til eleverne i den valgte klasse (fra database) automatisk i samme øjeblik klassen vælges - uden at skulle trykke på en knap.

Hvordan?
Avatar billede whatever Nybegynder
25. januar 2003 - 15:02 #1
Er det sådan noget du er på jagt efter: http://www.efusion.it/exp/302058.php ?

Amterne og kommunerne hentes ud af databasen, og udskrives til en javascript array. Sourcen findes på http://www.efusion.it/exp/302058.phps
Avatar billede samsayit Nybegynder
25. januar 2003 - 15:35 #2
Jep, det er faktisk præcist sådan - så skulle det bare gerne have være asp istedet for php!
Avatar billede whatever Nybegynder
26. januar 2003 - 01:37 #3
Jeg har fikset ovenstående til ASP:

-------------------------------------
<% @LANGUAGE = VBScript %>
<%

    Option Explicit

    Dim conn, sql_amt, sql_kom, rs, arrAmter, arrKommuner, print_amter, print_js, i, j, count

    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "DRIVER={MySql}; SERVER=localhost; DATABASE=eksperten; UID=root; PWD="

    sql_amt = "SELECT amtID,amt FROM exp_amter ORDER BY amt"
    sql_kom = "SELECT amtID,kommuneID,kommune FROM exp_kommune ORDER BY amtID, kommune"
   
    Set rs = conn.Execute(sql_amt)
    arrAmter = rs.GetRows()
    rs.Close
    Set rs = Nothing
   
    Set rs = conn.Execute(sql_kom)
    arrKommuner = rs.GetRows()
    rs.Close
    Set rs = Nothing
   
    conn.Close
    Set conn = Nothing
   
    For i = 0 to Ubound(arrAmter,2)
        print_amter = print_amter & "<option value=""" & arrAmter(0,i)  &""">" & arrAmter(1,i) & "</option>" & VbCrLf
        print_js = print_js & "kommuner[" & arrAmter(0,i) & "] = new Array ("
        count = 0
        For j = 0 to Ubound(arrKommuner,2)
            If arrKommuner(0,j) = arrAmter(0,i) Then
                If count = 0 Then
                    print_js = print_js & "'0#Vælg kommune','" & arrKommuner(1,j) & "#" & arrKommuner(2,j) & "'"
                Else
                    print_js = print_js & ",'" & arrKommuner(1,j) & "#" & arrKommuner(2,j) & "'"
                End If
                count = count + 1
            End If
        Next
        print_js = print_js & ")" & VbCrLf
    Next

%>

<html>
<head>
<script language"JavaScript">
<!--

var kommuner = new Array()
kommuner[0] = new Array ('0#Vælg først et amt')
<%= print_js %>

function getKommuner() {
  var frm = document.formular;
  var amt_id = frm.list_amt.value;
  var i; 
  frm.list_kom.options.length = 0;
  for (i = 0; i < kommuner[amt_id].length; i++) {
    arr_split = kommuner[amt_id][i].split("#");
    var no = new Option();
    no.value = arr_split[0];
    no.text = arr_split[1];
    frm.list_kom[i] = no;
  }
}

//-->
</script>
</head>

<body>
<form name="formular">

<select name="list_amt" style="width:150" onchange="getKommuner()">
<option value="0">Vælg amt</option>
<%= print_amter %>
</select>

<select name="list_kom" style="width:150">
<option>Vælg først et amt</option>
</select>

<input type="button" onclick="alert(document.formular.list_kom.value)" value="Hent value for valgt kommune" />

</form>
</body>
</html>
--------------------------------

Variabelnavnene passer stadig væk til amter og kommuner. Men dem kan du jo ændre.
Avatar billede samsayit Nybegynder
26. januar 2003 - 15:32 #4
Tusind tak - prøver det lige af imorgen mandag hvor jeg har de relevante filer ved min side, vender tilbage med point :)
Avatar billede samsayit Nybegynder
27. januar 2003 - 12:31 #5
Det virker ikke mindre end perfekt. Tak for det!
Avatar billede whatever Nybegynder
27. januar 2003 - 12:38 #6
Det var så lidt :-)
Avatar billede bademester Nybegynder
31. marts 2003 - 16:26 #7
Rigtig smart script - hvis jeg nu bare gerne vil have de værdier ud som jeg vælger i dropdown boksene - hvordan gør jeg så det :-)
Avatar billede encorez Nybegynder
08. juli 2003 - 15:23 #8
whatever -> det er godt script men jeg har måske samme problem som bademester. Når jeg sender formen, så kan jeg kun modtage værdien fra boks nr 2. Ikke boks når 1 med amterne. Er dette korrekt? Hvorfor sender den ikke den værdi og kan det løses?

Mvh. Simon
Avatar billede encorez Nybegynder
08. juli 2003 - 15:25 #9
sorry, har lige fundet ud af det. Min fejl, beklager ulejligheden
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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