lav en onChange="getKommuner()" på din dropdownliste. Denne funktion skal så hente og fylde den anden dropdownliste på baggrund af det valgte amt. Du kan finde det valgte amt ved minForm.minDropDown.value
Det her script bruger jeg, jeg her rette mit fra Region, Country til Amt, Kommune. Hvis du ikke kan gennemskue at <select> boksne bliver fyldt fra en database, kan jeg rette det til statisk, select.
<script language="JavaScript"> // <!-- function changeAmt() { var punkter = new Array() switch(document.hjem.amt[document.hjem.amt.selectedIndex].value) { <% strSQL = "SELECT TOP 1 AmtID FROM amter ORDER BY AmtID Desc" Set rsAntal = Conn.Execute(strSQL) For t = 1 to rsAntal("AmtID") %> case '<%=t%>': <% i = 0 strSQL = "SELECT * FROM kommuner Where AmtID=" & t & " ORDER BY Kommune" Set rs = Conn.Execute(strSQL) Do While Not rs.EOF %> punkter[<%=i%>] = "new Option('<%=rs("Kommune")%>', '<%=rs("KommuneID")%>')"; <% i = i + 1 rs.MoveNext Loop %> break; <% Next %> default: break; } document.hjem.kommune.options.length = 0; for (var i=0; i<punkter.length; i++) { document.hjem.kommune.add(eval(punkter[i])); } } // --> </script> <form name="hjem" method="post" action="bla.asp"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td>Hvilket amt</td> <td> <select name="amt" onchange="changeAmt();"> <% strSQL = "SELECT * FROM amter ORDER BY amt" Set rs = Conn.Execute(strSQL) Do While Not rs.EOF %> <option value="<%=rs("AmtID")%>"><%=rs("amt")%></option> <% rs.MoveNext Loop %> </select> </td> </tr> <tr> <td>Hvilken kommune</td> <td> <select name="kommune"> </select> </td> </tr> </table> </form>
var kommuner = new Array() kommuner[0] = new Array ('Vælg først et amt') kommuner[1] = new Array ('Amt 1 - Kommune 1','Amt 1 - Kommune 2','Amt 1 - Kommune 3','Amt 1 - Kommune 4') kommuner[2] = new Array('Amt 2 - Kommune 1','Amt 2 - Kommune 2','Amt 2 - Kommune 3','Amt 2 - Kommune 4') kommuner[3] = new Array('Amt 3 - Kommune 1','Amt 3 - Kommune 2','Amt 3 - Kommune 3','Amt 3 - Kommune 4')
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++) { var no = new Option(); no.value = i; no.text = kommuner[amt_id][i]; frm.list_kom[i] = no; } }
Jeg har bare lige et spørgsmål, hvordan får jeg PHP til at sidde sammen med det? PHP'en skal udskrive de arrays...
Jeg har lavet: <? include ("inc/mysql.inc.phtml"); $getamterne = mysql_query("SELECT * FROM amter"); while($getamternerow = mysql_fetch_array($getamterne)) { print "kommuner[$getamternerow[amtID]] = new Array ('$getamternerow[amt] - Kommune 1','Amt 1 - Kommune 2','Amt 1 - Kommune 3','Amt 1 - Kommune 4')\n"; } ?>
Den laver en liste over amterne, men hvordan laver jeg det også med kommunerne?
Amter database: CREATE TABLE amter ( amt varchar(50) NOT NULL default '0', amtID int(11) NOT NULL default '0' ) TYPE=MyISAM;
Kommune: CREATE TABLE kommune ( id int(11) NOT NULL auto_increment, kommune varchar(30) NOT NULL default '', kommuneID int(11) NOT NULL default '0', amtID int(11) NOT NULL default '0', PRIMARY KEY (id) ) TYPE=MyISAM;
Jeg har lige et spm til whatever, og det er, om det er muligt at få lavet sådan at når man har valgt amt, bliver den første option en "vælg kommune", og ikke vise den første kommune...
Det skal nemlig være muligt at lade være med at skulle vælge kommune.. jeg har prøvet at fifle med det, men kommer hele tiden fejl på siden...
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.