webForumDet fria alternativet

Db-selectlista

1 svar · 187 visningar · startad av Qimen

QimenMedlem sedan juni 20013 568 inlägg
#1

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
#2

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. :)

Genererad på 503 ms · cache AV · v20260730165559-full.f96bc7eb