Categorie Subcategorie Dropdownbox
Ik ben nieuw op het forum en sinds kort begonnen met PHP,MYSQL. Ik ben bezig met een Incidenten beheersysteem.
Ik zou graag bij het aanmaken van een nieuw Incident een Categorie willen selecteren en daarna een Subcategorie.
Dit zijn mijn tabellen:
Ik had in gedachten de Link tabel te vullen met alle mogelijke combinaties.
Ik zou graag een duwtje in de juiste richting willen hebben.
Ik weet niet of dit simpel te realiseren is voor een beginner? zijn de tabellen goed opgezet ?
Groeten,
Robin
Gewijzigd op 13/03/2013 12:18:29 door Robin B
Toevoeging op 18/03/2013 09:23:56:
Kan niemand mij hierbij helpen ?
Ik neem aan dat je ook ergens een probleemomschrijving hebt. Maar dat zie ik nergens.
Ik weet wel hoe ik een selectie maak voor 1 tabel. Bijvoorbeeld het selecteren van een status hieronder.
maar ik weet niet hoe ik dit realiseer voor het selecteren van een Categorie en dat hij dan alleen de waarden van de sub categorie laat zien?
<!-- SELECT STATUS -->
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$result=mysql_query("
SELECT Stat_List, Stat_ID FROM tbl_status;")
or die(mysql_error());
echo '<label for="Status">Status:*</label>';
echo '<select id="Status" name="Status">';
while ($row = mysql_fetch_assoc($result))
{
echo '<option value="'.$row['Stat_ID'].'">'.$row['Stat_List'].'</option>';
}
echo '</select>';
?>
$result=mysql_query("
SELECT Stat_List, Stat_ID FROM tbl_status;")
or die(mysql_error());
echo '<label for="Status">Status:*</label>';
echo '<select id="Status" name="Status">';
while ($row = mysql_fetch_assoc($result))
{
echo '<option value="'.$row['Stat_ID'].'">'.$row['Stat_List'].'</option>';
}
echo '</select>';
?>
<!-- END SELECT STATUS -->
Gewijzigd op 18/03/2013 09:59:37 door Robin B
2. als je formulier gesubmit wordt dan krijgt php ene $_POST['name_van_jouw_select'] met als waarde de primary key van de gemaakte keuze.
3. je voegt het incident toe en de kolom catagorie krijgt in de tabel gewoon de pk van van de categorie (en dus niet de naam) (we noemen dat ook wel een foreign key)
4. in het vervolg als je gegevens uit de tabel incidenten wilt halen werk je met een LEFT JOIN.
Code (php)
1
SELECT incidenten.incidentnaam, incidenten.categorie FROM incidenten LEFT JOIN categorie ON categorie.id = incidenten.categorie;
Gewijzigd op 18/03/2013 10:17:48 door Frank Nietbelangrijk
http://www.phptuts.nl/view/39/6/
Ik heb er zelf heel lang over gedaan om te weten wat het precies is, maar door deze site was het appeltje-ei
Toevoeging op 18/03/2013 10:18:11:
@frank: ophalen is het beste toch met een multi dimensionale array?
Je krijgt dan te maken met Arrays. Als je hier nog niet mee bekend mee bent: Ik heb er zelf heel lang over gedaan om te weten wat het precies is, maar door deze site was het appeltje-ei
Toevoeging op 18/03/2013 10:18:11:
@frank: ophalen is het beste toch met een multi dimensionale array?
bedankt!
maar ophalen is nu eerst niet het probleem.
Moet het eerst maar eens in de tabel krijgen.
wat hij eigenlijk moet doen is:
Select "Cat_Link_ID", laat deze zien als "Cat_List" uit "tbl_category_link" en "tbl_category"
"Cat_Link_ID" staat gelijk aan "Cat_ID"(pk).
als er dan een Categorie geselecteerd is moet er contact met de database zijn zodat hij alleen de "SubCat_Link_ID" toont die bij de geselecteerde "Cat_Link_ID" hoort.
"SubCat_Link_ID" staat gelijk aan "SubCat_ID"(pk).
Vervolgens heb je een geselecteerd "Cat_Link_ID" en "SubCat_Link_ID" en deze combinatie staat genoteerd in de "Category_Link_ID"(pk) en de waarde hiervan moet hij opslaan in "Tkt_Category_Link_ID" zodat deze weer kan worden ingeladen bij het beheer pagina van het Ticket/Incident.
Klopt dit ?
<!-- SELECT CATEGORY AND SUB CATEGORY -->
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$result=mysql_query("
Select Cat_Link_ID , Cat_List FROM tbl_category_link , tbl_category;")
or die(mysql_error());
echo '<label for="Cat_Selectie">Categorie:*</label>';
echo '<select id="Cat_Selectie" name="Cat_Selectie">';
while ($row = mysql_fetch_assoc($result))
{
echo '<option value="'.$row['Cat_Link_ID'].'">'.$row['Cat_List'].'</option>';
}
echo '</select>';
?>
$result=mysql_query("
Select Cat_Link_ID , Cat_List FROM tbl_category_link , tbl_category;")
or die(mysql_error());
echo '<label for="Cat_Selectie">Categorie:*</label>';
echo '<select id="Cat_Selectie" name="Cat_Selectie">';
while ($row = mysql_fetch_assoc($result))
{
echo '<option value="'.$row['Cat_Link_ID'].'">'.$row['Cat_List'].'</option>';
}
echo '</select>';
?>
<!-- Hij moet iets doen zodat hij alleen de juiste sub categorien laat zien -->
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$result=mysql_query("
Select SubCat_Link_ID, SubCat_List FROM tbl_category_link , tbl_subcategory;")
or die(mysql_error());
echo '<label for="Sub_Cat_Selectie">Sub Categorie:*</label>';
echo '<select id="Sub_Cat_Selectie" name="Sub_Cat_Selectie">';
while ($row = mysql_fetch_assoc($result))
{
echo '<option value="'.$row['SubCat_Link_ID'].'">'.$row['SubCat_List'].'</option>';
}
echo '</select>';
?>
$result=mysql_query("
Select SubCat_Link_ID, SubCat_List FROM tbl_category_link , tbl_subcategory;")
or die(mysql_error());
echo '<label for="Sub_Cat_Selectie">Sub Categorie:*</label>';
echo '<select id="Sub_Cat_Selectie" name="Sub_Cat_Selectie">';
while ($row = mysql_fetch_assoc($result))
{
echo '<option value="'.$row['SubCat_Link_ID'].'">'.$row['SubCat_List'].'</option>';
}
echo '</select>';
?>
<!-- END CATEGORY AND SUB CATEGORY -->
Ik probeer de hierboven beschreven werking in code te verwerken maar ik kom er niet uit.
Gewijzigd op 18/03/2013 12:10:45 door Robin B
in tbl_subcategory mis ik dan nog een kolom met het id bij welke categorie de subcategorie hoort:
dus tabel tbk_subcategory:
Toevoeging op 18/03/2013 12:22:11:
Je wilt op één webpagina twee dropdowns plaatsen waarvan de tweede automatisch update-t als er een selectie wordt gemaakt in de eerste?
dat kan wel maar dan zul je eens moeten googlen op AJAX.
Gewijzigd op 18/03/2013 12:19:44 door Frank Nietbelangrijk
@ Frank in tbl_subcategory mis ik dan nog een kolom met het id bij welke categorie de subcategorie hoort:
Dit staat toch in de link tabel daar is hij toch voor bedoeld ?
Ja zoals hier
Gewijzigd op 18/03/2013 12:31:35 door Robin B
die is in deze situatie eigenlijk niet nodig. je hebt hier een 1 -> veel relatie.
bij een veel -> veel heb je die wel nodig
maar wat wil je nu weten (zie mijn toevoeging in mijn vorige post) ?
Is het updaten van de 2e dropdownbox bij selectie niet te realiseren zonder AJAX ?
En als ik nu het formulier laad toont hij van elke optie 4 terwijl elke optie gekoppeld is aan een ID.( dit komt waarschijnlijk omdat de code niet juist is)
Ik weet wel hoe ik hem kan laten zien als 1 met DISTINCT maar dit is niet juist.
Is dit relevant ? http://www.plus2net.com/php_tutorial/ajax_drop_down_list.php
Gewijzigd op 18/03/2013 13:09:19 door Robin B
opgelost met javascript