QimenMedlem sedan juni 20013 568 inlägg
Hej
Hur ska jag gå till väga för att lösa ett sådant här ( http://www.webforum.nu/showthread.php?s=&threadid=63304&forumid=149 ) fast där datan hämtas ifrån en db?
Eftersom en query måste köras beroende på val så måste ju sidan laddas om antar jag.
I tabell ni_hvd_kat har jag id, hvd_kat. Där finns alla huvudkategorier. I tabell ni_ud_kat finns id, ud_kat, hvd_kat. Där sparars alla underkategorier samt till vilken huvudkategori de hör till.
Nu vill jag att först hämtas huvudkategorierna och läggs i en selectlista, sedan beroende på val ska nya val komma upp i en andra selectlista.
Nexus86Medlem sedan okt. 20022 683 inlägg
Förutsatt att kolumnen hvd_kat i tabellen ni_ud_kat innehåller id till huvudkategorin och inte namnet samt att id i båda dessa börjar på noll och jobbar sig uppåt utan uppbehåll.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Sveriges alla kommuner</title>
</head>
<body>
<script language="JavaScript" type="text/javascript">
<!--//© Copyright Inovart - 2003
<?
$link = mysql_connect('localhost', 'användarnamn', 'lösenord');
mysql_select_db('databasnamn');
$hvd_result = mysql_query("SELECT id, hvd_kat FROM ni_hvd_kat");
echo 'var katdata = new Array(' . mysql_num_rows($hvd_result) . ');
for(var n=0;n<katdata.length;n++){
katdata[n] = new Array();
}
// Samtliga kommuner
katdata[0][0]="-- Välj huvudkategori --";';
$kat_result = mysql_query("SELECT id, ud_kat, hvd_kat FROM ni_ud_kat");
while ($row = mysql_fetch_array($kat_result, MYSQL_ASSOC)) {
echo "katdata[" . $row['hvd_kat'] . "][" . $row['id'] . "]=\"" . $row['ud_kat'] . "\";\n";
}
mysql_free_result($kat_result);
?>
// osv.
function showSubKommun(subCat,selectObj){
selectObj.length=katdata[subCat].length;
for(var n=0;n<katdata[subCat].length;n++){
selectObj[n].text=katdata[subCat][n];
selectObj[n].value=katdata[subCat][n];
}
}
</script>
<form>
<select name="hvd_kat" onChange="showSubKommun(this.selectedIndex,this.form.underKat);">
<option value="" selected>-- Välj huvudkategori --</option>
<?
while ($row = mysql_fetch_array($hvd_result)) {
echo "<option>" . $row['hvd_kat'] . "</option>\n";
}
mysql_free_result($hvd_result);
mysql_close($link);
?>
</select>
<select name="underKat">
<option selected>-- Välj huvudkategori--</option>
</select>
</form>
</body>
</html>
<!-- Skapad av Inovart © 2003 -->
Har inte testat men det bör väl fungera. :)