$_POST in selectielijst werkt niet
Wat ik ook doe, ik krijg een leeg veld terug.
Ik wil wel graag met een leeg veld beginnen, waarna Dhr. of Mevr. gekozen kan worden.
Iemand een oplossing?
Alvast bedankt!
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
<select class ="
<?php
if (in_array('aanhef',$errors) or
(isset($_POST['datum_reg'])and
($aanhef_error == 1)))
{echo "keuzemenu_1";} else
{echo "keuzemenu_2";}
?>"
name="aanhef"/>
<option value=""></option>
<option value="Dhr."><?php if (isset($_POST['datum_reg']) and ($_POST['aanhef']== "Dhr.")) {echo $_POST['aanhef'];} else {echo "Dhr.";}?></option>
<option value="Mevr."><?php if (isset($_POST['datum_reg']) and ($_POST['aanhef']== "Mevr.")) {echo $_POST['aanhef'];} else {echo "Mevr.";}?></option>
</select>
<?php
if (in_array('aanhef',$errors) or
(isset($_POST['datum_reg'])and
($aanhef_error == 1)))
{echo "keuzemenu_1";} else
{echo "keuzemenu_2";}
?>"
name="aanhef"/>
<option value=""></option>
<option value="Dhr."><?php if (isset($_POST['datum_reg']) and ($_POST['aanhef']== "Dhr.")) {echo $_POST['aanhef'];} else {echo "Dhr.";}?></option>
<option value="Mevr."><?php if (isset($_POST['datum_reg']) and ($_POST['aanhef']== "Mevr.")) {echo $_POST['aanhef'];} else {echo "Mevr.";}?></option>
</select>
Toevoeging op 07/12/2010 21:03:16:
Ik weet trouwens niet waarom alles uit elkaar getrokken wordt, maar ik hoop dat het nog te lezen is...
Graag code in de code tags plaatsen in het vervolg[/modedit]
Gewijzigd op 08/12/2010 12:04:06 door Peter van den Dungen
plaats je code aub tussen [code.] en [/code.] (zonder de .) en je code wordt netjes als 1 geheel weergegeven.
Verder probeer je volgens mij te zorgen dat een option selected is. Zoek eens op hoe je dat doet met html.
Nu worden beide weer weergegeven na validatie. Echter de keuze wordt nog steeds niet onthouden.
Ik probeer dus niet de option selected toe te passen. Deze moet gewoon leeg zijn in eerste instantie.
Wat is er nou de bedoeling? Want uit je script is het niet te lezen..
Als het formulier verzonden is wil ik de verzonden waarde teruggeven. Dit voor het geval een ander veld in het formulier ongeldig en niet alles opnieuw ingevoerd hoeft te worden.
Op het moment dat ik de $_POST['datum_reg'] niet controleer dan wordt de opmaak van het veld meteen rood (veld leeg of ongelidg). Dus ook bij de eerste weergave van het formulier.
Als het formulier nog niet verzonden is dat geldt het else-statement en wordt gewoon dhr. of mevr. weergegeven.
Als ik ($_POST['aanhef']== "Dhr.")) niet gebruik dan komt alleen nog de ingevoerde waarde terug en kan er niet meer gekozen worden tussen dhr. en mevr.
Hoe zou je dit anders aanpakken dan?
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
$aanhef = (!empty($_POST['aanhef']) ? $_POST['aanhef'] : "");
echo '
<form method="post" action="">
<select name="aanhef">
<option> -- maak een keuze -- </option>
<option value="m" '. ($aanhef == 'm' ? 'selected="selected" ' : "") .'>Dhr.</option>
<option value="v" '. ($aanhef == 'v' ? 'selected="selected" ' : "") .'>Mevr.</option>
</select>
<input type="submit" value="GO"/>
</form>
';
?>
$aanhef = (!empty($_POST['aanhef']) ? $_POST['aanhef'] : "");
echo '
<form method="post" action="">
<select name="aanhef">
<option> -- maak een keuze -- </option>
<option value="m" '. ($aanhef == 'm' ? 'selected="selected" ' : "") .'>Dhr.</option>
<option value="v" '. ($aanhef == 'v' ? 'selected="selected" ' : "") .'>Mevr.</option>
</select>
<input type="submit" value="GO"/>
</form>
';
?>
* Google "Ternary operator" als je de structuur (conditie ? als : als_niet) niet kent
* Merk verder ook op: je hoeft in de value van een option niet de zelfde waarde meegeven als wat je aan de gebruiker toont.
Gewijzigd op 08/12/2010 12:19:35 door Kris Peeters
Als ik een class wil gebruiken voor de opmaak.
Normaal had ik gebruikt, maar nu staat het hele blok tussen de php code.
Hoe echo ik nu een string in de class? Wat ik nu probeer werkt niet
<code>
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
$aanhef = (!empty($_POST['aanhef']) ? $_POST['aanhef']: "");
$opmaak_aanhef = (in_array('aanhef',$errors) or ($aanhef_error == 0)) ? 'keuzemenu_1':'keuzemenu_2';
echo '
<select
name="aanhef">
class="'. $opmaak_aanhef .'">
<option></option>
<option value="m"'. ($aanhef == 'm' ? 'selected="selected"': "").'>Dhr.</option>
<option value="v"'. ($aanhef == 'v' ? 'selected="selected"': "").'>Mevr.</option>
</select>
';
?>
$aanhef = (!empty($_POST['aanhef']) ? $_POST['aanhef']: "");
$opmaak_aanhef = (in_array('aanhef',$errors) or ($aanhef_error == 0)) ? 'keuzemenu_1':'keuzemenu_2';
echo '
<select
name="aanhef">
class="'. $opmaak_aanhef .'">
<option></option>
<option value="m"'. ($aanhef == 'm' ? 'selected="selected"': "").'>Dhr.</option>
<option value="v"'. ($aanhef == 'v' ? 'selected="selected"': "").'>Mevr.</option>
</select>
';
?>
</code>
Wát werkt er niet? Krijg je foutmeldingen, geen output of gaat je computer roken?
;-) Nee, ik krijg geen opmaak, zou de $opmaak_aanhef zo wel geëchoed(?) moeten worden dan?
Misschien de > op regel 6 weghalen?
tnx!