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?
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.
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