Ik heb een keuzelijst die veel te lang wordt. Ik wil graag een systeem maken dat uit 2 keuzelijsten bestaat:
Keuzelijst 1 bevat een aantal hoofdcategoriën. Afhankelijk van de gekozen hoofdcategorie wordt een tweede keuzelijst gevuld, waar de keuze dan meer kan worden verfijnd.
Ik wou een extra tabel aanmaken in Mysql met een veld Hoofdrubriek en een veld Subrubrieken, maar ik weet niet hoe ik er verder mee moet werken.
Ik ben een beginneling, dus graag een beetje gedetailleerde uitleg.
Je begint met een query om de hoofdcategorieën op te halen en die steek je in de keuzelijst en dan voer je in het onChange-event van die lijst een nieuwe query uit met dan een WHERE om de subcategorieën van de gekozen hoofdcategorie in de lijst te kunnen zetten.
dat is een mooie manier, maar lastig als je net begint.
Iets wat een klik of 2 meer kost, maar makkelijker is, is een tabel nemen met je hoofdcategorie , en een tabel met daarin subcategoriën, maar ook hoofd categoriën.
wat je dan doet, is met een SELECT query de categorien van je hoofdtabel selecteren, en die dan neerzetten in bijvoorbeeld een dropdown menuutje. Dan heb je dus al je hoofdcategoriën.
Dat dropdown menuutje geeft je als name bv hoofdcat, en elke optie geeft je dezelfde value als hoe je het hebt opgeslagen.
Dan doe je weer een select query, maar nu in tabel 2, en met WHERE hoofdcat=$_POST['hoofdcat'].
het is een beetje lastig uit te leggen als je beginner bent
$zoekHoofdCat=mysql_query("SELECT hoofdcat FROM tabel 1") or die(mysql_error());
$telHcat=mysql_num_rows($zoekHoofdCat);
if($telHcat==0){echo"Er zijn geen hoofdcategoriën geselecteerd";}
else{
echo"Kies je hoofdcategorie aub: <select name=hoofdcat><option></option>";
while($hoi=mysql_fetch_array($zoekHoofdCat)){ echo"<option value=$hoi[0]>$hoi[0]</option>";}
echo"</select>";
maar er verschijnt nog steeds niets in de tweede keuzelijst
Abbas - 15/02/2008 18:11 (laatste wijziging 15/02/2008 18:11)
Crew .NET
Ben je dan zeker dat je alles juist ophaalt, dat er dus daadwerkelijk gegevens opgehaald worden. Probeer anders dezelfde code eens maar met een constante..
Ik heb ' ".$_POST['hoofdrubriek']." ' vervangen door 'mens' en krijg nu in de tweede keuzelijst de juiste subrubrieken: lichaam, voeding, kleding, ...
"hoofdrubriek" is de naam van de eerste keuzelijst.
BERICHT GEWIJZIGD
Een deel van het probleem is opgelost: de tweede lijst wordt gevuld, maar niet zomaar met de juiste gegevens.
Zoals ik al vermoedde krijgt $_POST pas de correcte inhoud nadat een keer op een submit-knop gedrukt is.
Hoe kan ik dat oplossen? Kan ik achter het vak waar de eerste lijst instaat een klein knopje plaatsen, dat de waarde van lijst 1 in $_POST zet, de tweede lijst laat verschijnen en dan de waarden van lijst 1 via $_POST in die tweede lijst plaatst.