$_POST / $_GET
op 1 pagina laat ik via een simpel dropdown menu een switch / case lopen.
in mijn 1 case toon ik een lijst lijst met namen.
deze zit in een tabel die ik echo via een while.
dan heb ik via een andere switch case de keuze dat ze alfa ASC of DESC sorteerd worden.
in google chrome werkt dit zonder probleem op IE wilt het niet werken.
kan iemand vertellen waarom niet
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
<form action="securepage.php?pag=5" method="post" enctype="multipart/form-data" name="upload" id="upload">
<table width="772" cellspacing="0" cellpadding="0">
<tr>
<td width="179" height="28"><h2> </h2></td>
<td width="593" ><h3>
<select name="keuze" id="keuze">
<OPTION VALUE="">Selecteer wat je wil doen</OPTION>
<OPTGROUP LABEL="Klanten">
<OPTION VALUE="2">klanten lijst afdrukken</OPTION>
</OPTGROUP>
</select>
<input type="submit" name="uploaden" value="OK"/>
</h3></td>
</tr>
</table>
</form>
<p>
<?php
if (empty($_POST['keuze'])) { $swichnr=1;}
if ($_POST['keuze']==2) { $swichnr=2;} //lijst afprinten
if ($_GET['keuze']==2) { $swichnr=2;} //lijst afprinten
switch ($swichnr) {
//begin van de pagina
case 1:
echo $_SESSION['msg'] ;?>
<table width='939' height='500px' >
<tr>
<h4>
<td valign="top"><p>Hier op deze pagina kan je de lijsten afprinten.</p> </td>
</h4>
</tr>
</table>
<?php
break;
?>
<?php
case 2:
$lijstkeuze=1;
if ($_POST['lijst']==1) { $lijstkeuze=1;} //Alfa ASC NAAM
if ($_POST['lijst']==2) { $lijstkeuze=2;} //Alfa DESC NAAM
?>
<h1>Klanten lijst Afprinten</h1>
<a href="javascript:window.print()">Print deze pagina</a><br />
<form action='securepage.php?pag=5&keuze=2' method='post' enctype='multipart/form-data' name='upload' id='upload'>
<table width="1242" border="0" cellspacing="0" cellpadding="0">
<tr align="center" >
<td width="82" height="47" class="styleborder3" ><h4>Klant</h4></td>
<td width="36"class="styleborder3" ><input name="lijst" type="image" src="../pics/AZ.png" width="20" height="20" value="1"/></td>
<td width="36"class="styleborder3" ><input name="lijst" type="image" src="../pics/ZA.png" width="20" height="20" value="2"/></td>
</tr>
<?php
switch ($lijstkeuze) {
case 1:
$sql= mysqli_query($link,"SELECT *,DATE_FORMAT(Klant_Datum, '%d.%m.%Y') AS datum FROM klanten_gegevens ORDER BY Naam ASC");
break;
case 2:
$sql= mysqli_query($link,"SELECT *,DATE_FORMAT(Klant_Datum, '%d.%m.%Y') AS datum FROM klanten_gegevens ORDER BY Naam DESC");
break;
?>
<table width="772" cellspacing="0" cellpadding="0">
<tr>
<td width="179" height="28"><h2> </h2></td>
<td width="593" ><h3>
<select name="keuze" id="keuze">
<OPTION VALUE="">Selecteer wat je wil doen</OPTION>
<OPTGROUP LABEL="Klanten">
<OPTION VALUE="2">klanten lijst afdrukken</OPTION>
</OPTGROUP>
</select>
<input type="submit" name="uploaden" value="OK"/>
</h3></td>
</tr>
</table>
</form>
<p>
<?php
if (empty($_POST['keuze'])) { $swichnr=1;}
if ($_POST['keuze']==2) { $swichnr=2;} //lijst afprinten
if ($_GET['keuze']==2) { $swichnr=2;} //lijst afprinten
switch ($swichnr) {
//begin van de pagina
case 1:
echo $_SESSION['msg'] ;?>
<table width='939' height='500px' >
<tr>
<h4>
<td valign="top"><p>Hier op deze pagina kan je de lijsten afprinten.</p> </td>
</h4>
</tr>
</table>
<?php
break;
?>
<?php
case 2:
$lijstkeuze=1;
if ($_POST['lijst']==1) { $lijstkeuze=1;} //Alfa ASC NAAM
if ($_POST['lijst']==2) { $lijstkeuze=2;} //Alfa DESC NAAM
?>
<h1>Klanten lijst Afprinten</h1>
<a href="javascript:window.print()">Print deze pagina</a><br />
<form action='securepage.php?pag=5&keuze=2' method='post' enctype='multipart/form-data' name='upload' id='upload'>
<table width="1242" border="0" cellspacing="0" cellpadding="0">
<tr align="center" >
<td width="82" height="47" class="styleborder3" ><h4>Klant</h4></td>
<td width="36"class="styleborder3" ><input name="lijst" type="image" src="../pics/AZ.png" width="20" height="20" value="1"/></td>
<td width="36"class="styleborder3" ><input name="lijst" type="image" src="../pics/ZA.png" width="20" height="20" value="2"/></td>
</tr>
<?php
switch ($lijstkeuze) {
case 1:
$sql= mysqli_query($link,"SELECT *,DATE_FORMAT(Klant_Datum, '%d.%m.%Y') AS datum FROM klanten_gegevens ORDER BY Naam ASC");
break;
case 2:
$sql= mysqli_query($link,"SELECT *,DATE_FORMAT(Klant_Datum, '%d.%m.%Y') AS datum FROM klanten_gegevens ORDER BY Naam DESC");
break;
?>
dit is maar een stukje maar denk dat het alle informatie bevat
dus mijn 1ste dropdown geeft de "keuze 2" die case 2 aanspreekt, dan "lijst" post in dezelfde pag=5&keuze=2 waar dan de post de lijst nr is.
1 is ASC
2 is DESC
dus dit werkt in chrome
maar niet in IE?
hoe krijg ik dit ook in IE aan de praat
Gewijzigd op 25/11/2015 19:49:59 door Chris Bosmans
Op lijn 12 en 13 zie ik twee select sluit-tags staan. Dat klopt niet.
gewijzigd
was niet de oplossing
Als een formulier niet goed wilt versturen, dan ligt het vaak aan je HTML-CODE die niet valid is.
Valideer hem eens op http://validator.w3.org
Gewijzigd op 24/11/2015 22:46:41 door - Ariën -
maar die keuze doet het perfect
het is deze die niet wil doen
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
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
<?php
case 2:
$lijstkeuze=1;
if ($_POST['lijst']==1) { $lijstkeuze=1;} //Alfa ASC NAAM
if ($_POST['lijst']==2) { $lijstkeuze=2;} //Alfa DESC NAAM
?>
<h1>Klanten lijst Afprinten</h1>
<a href="javascript:window.print()">Print deze pagina</a><br />
<form action='securepage.php?pag=5&keuze=2' method='post' enctype='multipart/form-data' name='upload' id='upload'>
<table width="1242" border="0" cellspacing="0" cellpadding="0">
<tr align="center" >
<td width="82" height="47" class="styleborder3" ><h4>Klant</h4></td>
<td width="36"class="styleborder3" ><input name="lijst" type="image" src="../pics/AZ.png" width="20" height="20" value="1"/></td>
<td width="36"class="styleborder3" ><input name="lijst" type="image" src="../pics/ZA.png" width="20" height="20" value="2"/></td>
</tr>
<?php
switch ($lijstkeuze) {
case 1:
$sql= mysqli_query($link,"SELECT *,DATE_FORMAT(Klant_Datum, '%d.%m.%Y') AS datum FROM klanten_gegevens ORDER BY Naam ASC");
break;
case 2:
$sql= mysqli_query($link,"SELECT *,DATE_FORMAT(Klant_Datum, '%d.%m.%Y') AS datum FROM klanten_gegevens ORDER BY Naam DESC");
break;
?>
case 2:
$lijstkeuze=1;
if ($_POST['lijst']==1) { $lijstkeuze=1;} //Alfa ASC NAAM
if ($_POST['lijst']==2) { $lijstkeuze=2;} //Alfa DESC NAAM
?>
<h1>Klanten lijst Afprinten</h1>
<a href="javascript:window.print()">Print deze pagina</a><br />
<form action='securepage.php?pag=5&keuze=2' method='post' enctype='multipart/form-data' name='upload' id='upload'>
<table width="1242" border="0" cellspacing="0" cellpadding="0">
<tr align="center" >
<td width="82" height="47" class="styleborder3" ><h4>Klant</h4></td>
<td width="36"class="styleborder3" ><input name="lijst" type="image" src="../pics/AZ.png" width="20" height="20" value="1"/></td>
<td width="36"class="styleborder3" ><input name="lijst" type="image" src="../pics/ZA.png" width="20" height="20" value="2"/></td>
</tr>
<?php
switch ($lijstkeuze) {
case 1:
$sql= mysqli_query($link,"SELECT *,DATE_FORMAT(Klant_Datum, '%d.%m.%Y') AS datum FROM klanten_gegevens ORDER BY Naam ASC");
break;
case 2:
$sql= mysqli_query($link,"SELECT *,DATE_FORMAT(Klant_Datum, '%d.%m.%Y') AS datum FROM klanten_gegevens ORDER BY Naam DESC");
break;
?>
Toevoeging op 24/11/2015 22:50:59:
de case 1 zoekt mijn namen en rangschikt ze ASC
en toont die dan in de tabel
Dus als je de een post is de andere weer leeg.
Verder heb je 2 inputvelden met dezelfde naam, dat werkt alleen bij typ="radio"
mijn 1ste form gaat hij 'keuze' posten (1 of 2) die post de pagina terug naar zichzelf
als de securepage.php?pag=5
die 1 of 2 plaatst als case in mijn case (swichnr)
(in dit voorbeeld wil ik een lijst afdrukken (dus keuze value= 2 => toon case 2 van de swichnr)
in die case 2 van (swichnr) toon ik al mijn velden uit mijn sql tabel en rangschik is ze Alfabetisch
nu heb ik 2 opties een knop( A->Z en Z->A) als ik hierop klik dan stuurt dit een post 'lijst' door terug naar de securepage.php?pag=5&keuze=2 met $_post variabele['lijst']
die post stuurt mijn 2de switch( lijstkeuze) aan.waardoor het script kiest welke case (sort functie hij moet tonen)
case 1 is dan A-Z rangschik
case 2 is Z to A rangschik
dit werkt in chrome maar niet in IE
ik snap niet waar het verschil in zit.
Gewijzigd op 25/11/2015 00:06:11 door chris Bosmans
Hier zit keuze in een $_GET en niet in een $_POST.
Code (php)
1
<form action='securepage.php?pag=5&keuze=2' method='post' enctype='multipart/form-data' name='upload' id='upload'>
Je stuurt je FORM dus door naar pagina securepage.php?pag=5&keuze=2
Hierdoor zijn pag en keuze een $_GET zoals SanThe zegt.
Als je je keuze ook als post wilt kun je het volgende doen:
Code (php)
1
2
2
<form action='securepage.php?pag=5' method='post' enctype='multipart/form-data' name='upload' id='upload'>
<input type="hidden" name="keuze" value="2">
<input type="hidden" name="keuze" value="2">
Nu kun je keuze gewoon ophalen als $_POST['keuze'];
hier is mijn script (het begin met de 1st case + sql maar niet de hele while output.
misschien wordt het nu duidelijker
en nog maals ik krijg dit niet aan de praat in internet explorer maar WEL in chrome ? waar kan dit dan aan liggen
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
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
<form action="securepage.php?pag=5" method="post" enctype="multipart/form-data" name="upload" id="upload">
<table width="772" cellspacing="0" cellpadding="0">
<tr>
<td width="179" height="28"><h2> </h2></td>
<td width="593" ><h3>
<select name="keuze" id="keuze">
<OPTION VALUE="">Selecteer wat je wil doen</OPTION>
<OPTGROUP LABEL="Klanten">
<OPTION VALUE="2">klanten lijst afdrukken</OPTION>
</OPTGROUP>
</SELECT>
<input type="submit" name="uploaden" value="OK"/>
</h3></td>
</tr>
</table>
</form>
<p>
<?php
if (empty($_POST['keuze'])) { $swichnr=1;}
if ($_POST['keuze']==2) { $swichnr=2;} //lijst afprinten
if ($_GET['keuze']==2) { $swichnr=2;} //lijst afprinten
switch ($swichnr) {
//begin van de pagina
case 1:
echo $_SESSION['msg'] ;?>
<table width='939' height='500px' >
<tr>
<h4><td valign="top"><p>Hier op deze pagina kan je de lijsten afprinten.</p></td></h4>
</tr>
</table>
<?php
break;
?>
<?php
case 2:
$lijstkeuze=1;
if ($_POST['lijst']==1) { $lijstkeuze=1;} //Alfa ASC NAAM
if ($_GET['lijst']==2) { $lijstkeuze=2;} //Alfa DESC NAAM
if ($_POST['lijst']==2) { $lijstkeuze=2;} //Alfa DESC NAAM
?>
<h1>Klanten lijst Afprinten</h1>
<a href="javascript:window.print()">Print deze pagina</a><br />
<form action='securepage.php?pag=5&keuze=2' method='post' enctype='multipart/form-data' name='upload' id='upload'>
<table width="1242" border="0" cellspacing="0" cellpadding="0">
<tr align="center" >
<td width="82" height="47" class="styleborder3" ><h4>Klant</h4></td>
<td width="36"class="styleborder3" ><input name="lijst" type="image" src="../pics/AZ.png" width="20" height="20" value="1"/></td>
<td width="36"class="styleborder3" ><input name="lijst" type="image" src="../pics/ZA.png" width="20" height="20" value="2"/></td>
</tr>
<?php
switch ($lijstkeuze) {
case 1:
$sql= mysqli_query($link,"SELECT *,DATE_FORMAT(Klant_Datum, '%d.%m.%Y') AS datum FROM klanten_gegevens ORDER BY Naam ASC, Voornaam ASC");
while($toon_gegevens = mysqli_fetch_array($sql))
{
$Naam= $toon_gegevens['Naam'];
$Voornaam= $toon_gegevens['Voornaam'];
....
?>
<?php
</table></form>
?>
<table width="772" cellspacing="0" cellpadding="0">
<tr>
<td width="179" height="28"><h2> </h2></td>
<td width="593" ><h3>
<select name="keuze" id="keuze">
<OPTION VALUE="">Selecteer wat je wil doen</OPTION>
<OPTGROUP LABEL="Klanten">
<OPTION VALUE="2">klanten lijst afdrukken</OPTION>
</OPTGROUP>
</SELECT>
<input type="submit" name="uploaden" value="OK"/>
</h3></td>
</tr>
</table>
</form>
<p>
<?php
if (empty($_POST['keuze'])) { $swichnr=1;}
if ($_POST['keuze']==2) { $swichnr=2;} //lijst afprinten
if ($_GET['keuze']==2) { $swichnr=2;} //lijst afprinten
switch ($swichnr) {
//begin van de pagina
case 1:
echo $_SESSION['msg'] ;?>
<table width='939' height='500px' >
<tr>
<h4><td valign="top"><p>Hier op deze pagina kan je de lijsten afprinten.</p></td></h4>
</tr>
</table>
<?php
break;
?>
<?php
case 2:
$lijstkeuze=1;
if ($_POST['lijst']==1) { $lijstkeuze=1;} //Alfa ASC NAAM
if ($_GET['lijst']==2) { $lijstkeuze=2;} //Alfa DESC NAAM
if ($_POST['lijst']==2) { $lijstkeuze=2;} //Alfa DESC NAAM
?>
<h1>Klanten lijst Afprinten</h1>
<a href="javascript:window.print()">Print deze pagina</a><br />
<form action='securepage.php?pag=5&keuze=2' method='post' enctype='multipart/form-data' name='upload' id='upload'>
<table width="1242" border="0" cellspacing="0" cellpadding="0">
<tr align="center" >
<td width="82" height="47" class="styleborder3" ><h4>Klant</h4></td>
<td width="36"class="styleborder3" ><input name="lijst" type="image" src="../pics/AZ.png" width="20" height="20" value="1"/></td>
<td width="36"class="styleborder3" ><input name="lijst" type="image" src="../pics/ZA.png" width="20" height="20" value="2"/></td>
</tr>
<?php
switch ($lijstkeuze) {
case 1:
$sql= mysqli_query($link,"SELECT *,DATE_FORMAT(Klant_Datum, '%d.%m.%Y') AS datum FROM klanten_gegevens ORDER BY Naam ASC, Voornaam ASC");
while($toon_gegevens = mysqli_fetch_array($sql))
{
$Naam= $toon_gegevens['Naam'];
$Voornaam= $toon_gegevens['Voornaam'];
....
?>
<?php
</table></form>
?>
misschien brengt dit klaarheid
ik heb met $POST en $GET gewerkt maar alleen in de google browser werkt het
niet in de internet explorer.
bij google chrome : geeft hij lijn 20 aan => normaal want de keuze zit in de url dus moet ik de $_GET variabele hebben.
voor de rest geen errors niet zoals IE als hieronder
bij IE daar in tegen ook lijn 20 om dezelfde reden als hierboven
maar dan ook nog lijn 40 - 41 - 42 dat hij de variabele (Undefined index: lijst) niet kan vinden.
Beter stopt Microsoft gewoon met browsers maken dan zouden wij een stuk makkelijker programmeer leven hebben. Succes!