Automatisch nieuwe optie's en invul velden weergeven
Toevoeging op 15/11/2011 22:02:39:
Notice: Undefined index: srtlst in C:\xampp\htdocs\test.php on line 15
Toevoeging op 15/11/2011 22:08:48:
opgelost met een error_reporting(0);
miss niet helemaal de manie maar het werkt.
Dat is geen oplossing..........................
Het werkte niet helemaal omdat je:
- SRTLST nog had moeten wijzigen in main_cat
- VALUE niet had gevuld bij de option, de switch moet hier op reageren.
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
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
<?php
if(isset($_REQUEST['main_cat']))
$main_cat=$_REQUEST['main_cat'];
else
$main_cat='Frisdrank'; // default waarde
echo "<form name='create_drink' method='post' action='create_drink_verwerk.php'>";
echo "<div id='label_text'>Drink name: ";
echo "<input type='text' name='drink_name' size='15' />";
echo "</div><br />";
echo "<div id='label_text'>Main category: ";
echo "<select name='main_cat' onchange=\"window.location='drinks.php?main_cat='+this.value\">";
echo "<option value=Frisdrank>Frisdrank</option>";
echo "<option value=Bier>Bier</option>";
echo "<option value=Wijn>Wijn</option>";
echo "<option>Zoute snacks</option>";
echo "<option>Snoepgoed</option>";
echo "<option disabled='disabled'>Anders</option>";
echo "</select> ";
echo "</div><br />";
echo "<div id='label_text'>Sub category:";
echo "<select name='sub_cat'>";
switch($main_cat)
{
case 'Frisdrank':
echo "<optgroup label='Frisdrank'>";
echo "<option>Fles 1,5l</option>";
echo "<option>Fles 1l</option>";
echo "<option>Flesje 0,5l</option>";
echo "<option>Blikje 0,33l</option>";
echo "<option>Glas 0,2l</option>";
echo "</optgroup>";
// neem hier ook de verpakkingsgrootte en dergelijke op
break;
case 'Bier':
echo "<optgroup label='Bier'>";
echo "<option>Flesje 0,33l</option>";
echo "<option>Flesje 0,3l</option>";
echo "<option>Flesje 0,25l</option>";
echo "</optgroup>";
break;
// hier horen de andere dranken etc
default:
echo "Voor de soortlijst " .$main_cat ." staat hier nog niks!";
exit;
break;
}
echo "</select>";
echo "</div><br />";
echo "<!--<div id='label_text'>Prijs in €:";
echo "<input type='text' name='prijs_euro' size='10' />";
echo "</div><br />";
echo "<div id='label_text'>Prijs in vakjes:";
echo "<input type='text' name='prijs_vakje' size='10' />";
echo "</div><br />-->";
echo "<input type='submit' value='Create' />";
echo "</form>";
echo "</body>";
?>
if(isset($_REQUEST['main_cat']))
$main_cat=$_REQUEST['main_cat'];
else
$main_cat='Frisdrank'; // default waarde
echo "<form name='create_drink' method='post' action='create_drink_verwerk.php'>";
echo "<div id='label_text'>Drink name: ";
echo "<input type='text' name='drink_name' size='15' />";
echo "</div><br />";
echo "<div id='label_text'>Main category: ";
echo "<select name='main_cat' onchange=\"window.location='drinks.php?main_cat='+this.value\">";
echo "<option value=Frisdrank>Frisdrank</option>";
echo "<option value=Bier>Bier</option>";
echo "<option value=Wijn>Wijn</option>";
echo "<option>Zoute snacks</option>";
echo "<option>Snoepgoed</option>";
echo "<option disabled='disabled'>Anders</option>";
echo "</select> ";
echo "</div><br />";
echo "<div id='label_text'>Sub category:";
echo "<select name='sub_cat'>";
switch($main_cat)
{
case 'Frisdrank':
echo "<optgroup label='Frisdrank'>";
echo "<option>Fles 1,5l</option>";
echo "<option>Fles 1l</option>";
echo "<option>Flesje 0,5l</option>";
echo "<option>Blikje 0,33l</option>";
echo "<option>Glas 0,2l</option>";
echo "</optgroup>";
// neem hier ook de verpakkingsgrootte en dergelijke op
break;
case 'Bier':
echo "<optgroup label='Bier'>";
echo "<option>Flesje 0,33l</option>";
echo "<option>Flesje 0,3l</option>";
echo "<option>Flesje 0,25l</option>";
echo "</optgroup>";
break;
// hier horen de andere dranken etc
default:
echo "Voor de soortlijst " .$main_cat ." staat hier nog niks!";
exit;
break;
}
echo "</select>";
echo "</div><br />";
echo "<!--<div id='label_text'>Prijs in €:";
echo "<input type='text' name='prijs_euro' size='10' />";
echo "</div><br />";
echo "<div id='label_text'>Prijs in vakjes:";
echo "<input type='text' name='prijs_vakje' size='10' />";
echo "</div><br />-->";
echo "<input type='submit' value='Create' />";
echo "</form>";
echo "</body>";
?>
:
Het werkt nu deels, alleen het select field van main cat wordt nu weer terg gezet steeds naar frisdrank, bij ieder willekeurige keuze...
voor de rest werkt ie idd een stuk beter dan wat ik nu heb.
Je krijgt dan iets als
echo "<div id='label_text'>Main category: ";
echo "<select name='main_cat' onchange=\"window.location='drinks.php?main_cat='+this.value\">";
if($main_cat=='Frisdrank')
echo "<option value=Frisdrank selected=selected>Frisdrank</option>";
else
echo "<option value=Frisdrank>Frisdrank</option>";
if($main_cat=='Bier')
echo "<option value=Bier selected=selected>Bier</option>";
else
echo "<option value=Bier>Bier</option>";
if($main_cat=='Wijn')
echo "<option value=Wijn selected=selected>Wijn</option>";
else
echo "<option value=Wijn>Wijn</option>";
Nog 1 laatste vraag kan ik die onchange vaker gebruiken dan 1 keer op meerdere velden, heb net mijn lijstje klar met inhoud fles met welke merken dat wel hebben en ook dus wie dat niet heeft. Dus als je bijvoorbeeld Frisdrank --> Fles 1l selecteerd dat je dan weer een input extra krijgt om het merk te selecteren...
Afhankelijk van je selectieveld (dus main_cat) kan je een <form> maken waarin je net zoveel invoerveld, selectievelden of wat dan ook kan opnemen.
Je krijgt dan iets als
switch($main_cat)
{
case 'Frisdrank':
Hoeveel glaasjes drink je per dag: <input .....>
Drink je je glas wel leeg: <input .....>
break;
case 'Bier':
Hoeveel flessen drink je per dag: <input .....>
En hoeveel kratten per week: <input .....>
Hoe vaak laat je iets in je glas staan: <select ..>
Ken je het verhaal van Henkie?
break;
}
als ik de main_cat heb gekozen krijg ik een select veld terug jah, de sub_cat.
Als ik ook de sub_cat heb gekozen moet ie op basis van die keuze weer een select field weergeven...
Hoe kan ik dit het beste in het bestand verwerken... want moet zowel de main als de sub_cat meegeven in de url...
dus biijvoorbeeld:
Main_cat --> keuze is geworden FRISDRANK
Sub_cat --> keuze is geworden Fles 1l
Volgende select field worden dan de merken weergegeven... Niet iedere soort fis heeft een 1l fles dus moet ie ook niet alle merken tonen,,
Bij elke wijziging van de sub_cat zou ik zowel main_cat als de sub_cat meegeven.
Natuurlijk moet je dan ook $_REQUEST['sub_cat'] ergens opnemen.
En bij de select van de sub_cat moet je natuurlijk dan ook een onchange opnemen.
Aan de hand van main_cat en sub_cat kan je dan de 3e select vullen.
Gewijzigd op 16/11/2011 18:47:42 door Wladimir S