2 form lists koppelen
Het gaat om de volgende 2 tabellen:
categories
id
category
subcategories
id
catid
subcategory
Nu haal ik d.m.v. een form list/menu de categorieen op. Stel nu dat ik een categorie selecteer dan wil ik graag dat er een 2e form list verschijnt met de subcategorieen die bij het id van deze categorie horen. Dus (WHERE catid = 'id van de geselecteerde categorie')
Ik snap dat het met AJAX/JS moet maar laat ik hier nu net weinig verstand van hebben..
Ik hoop dat iemand me kan helpen, alvast bedankt!
Sam
Wat je ook kan doen, zonder javascript, de bovenste in een apart <form> zetten met een onchange submit en een method = get, kan je die in die daaronder weer ophalen.
(want onchange is ja juist wel javascript)
Nouja, je kan het ook zonder doen, maar dan krijg je een submit-knop. Ik vind het wel handig om dan voor het gebruikersgemak een onchange toe te voegen :).
heb je daar toevallig en voorbeeld van hoe je dat zou toepassen ? dit lijkt me namelijk wel interessant :)
Ja ik dacht ook al onchange is JS.. De bedoeling is eigenlijk om het zonder submit knop te doen. Een voorbeeldje met onchange zou idd wel handig zijn!
https://server.i-cey.net/subdomains/test/voorbeeld.php
(Je moet alleen even het certificaat accepteren)
Er kunnen vast nog wel wat dingen beter/veiliger, maar nu heb je een beetje een idee;
(Je moet alleen even het certificaat accepteren)
Er kunnen vast nog wel wat dingen beter/veiliger, maar nu heb je een beetje een idee;
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php
$categorieen = array(
1 => 'Categrorie a',
2 => 'Categrorie b',
3 => 'Categrorie c'
);
$producten = array(
1 => 'Product 1',
2 => 'Product 2',
3 => 'Product 3',
4 => 'Product 4',
5 => 'Product 5'
);
$koppelingen = array(
1 => array(1, 2, 3),
2 => array(3, 4, 5),
3 => array(1, 3, 5)
);
if(isset($_GET['categorie']) && !empty($_GET['categorie']) && is_numeric($_GET['categorie']))
{
if(key_exists($_GET['categorie'], $categorieen))
{
$cid = $_GET['categorie'];
}
}
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
echo '<pre>';
print_r($_POST);
echo '</pre>';
}
?>
<form action="" method="GET">
<select name="categorie" onchange="submit()">
<?php
foreach($categorieen as $id => $naam)
{
if($cid == $id)
{
echo '<option value="'.$id.'" SELECTED>'.$naam.'</option>'.PHP_EOL;
}else{
echo '<option value="'.$id.'">'.$naam.'</option>'.PHP_EOL;
}
}
?>
</select><br>
</form>
<?php
if(isset($cid))
{
?>
<form action="" method="POST">
<input type="hidden" name="categorie" value="<?php echo $cid; ?>">
<select name="product">
<?php
foreach($koppelingen[$cid] as $id)
{
echo '<option value="'.$id.'">'.$producten[$id].'</option>'.PHP_EOL;
}
?>
</select><br>
<input type="submit" name="submit" value="Verwerken">
</form>
<?php
}
?>
$categorieen = array(
1 => 'Categrorie a',
2 => 'Categrorie b',
3 => 'Categrorie c'
);
$producten = array(
1 => 'Product 1',
2 => 'Product 2',
3 => 'Product 3',
4 => 'Product 4',
5 => 'Product 5'
);
$koppelingen = array(
1 => array(1, 2, 3),
2 => array(3, 4, 5),
3 => array(1, 3, 5)
);
if(isset($_GET['categorie']) && !empty($_GET['categorie']) && is_numeric($_GET['categorie']))
{
if(key_exists($_GET['categorie'], $categorieen))
{
$cid = $_GET['categorie'];
}
}
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
echo '<pre>';
print_r($_POST);
echo '</pre>';
}
?>
<form action="" method="GET">
<select name="categorie" onchange="submit()">
<?php
foreach($categorieen as $id => $naam)
{
if($cid == $id)
{
echo '<option value="'.$id.'" SELECTED>'.$naam.'</option>'.PHP_EOL;
}else{
echo '<option value="'.$id.'">'.$naam.'</option>'.PHP_EOL;
}
}
?>
</select><br>
</form>
<?php
if(isset($cid))
{
?>
<form action="" method="POST">
<input type="hidden" name="categorie" value="<?php echo $cid; ?>">
<select name="product">
<?php
foreach($koppelingen[$cid] as $id)
{
echo '<option value="'.$id.'">'.$producten[$id].'</option>'.PHP_EOL;
}
?>
</select><br>
<input type="submit" name="submit" value="Verwerken">
</form>
<?php
}
?>
Arjan works like a charm, bedankt voor de moeite!