$_POST in selectielijst werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Peter van den Dungen

Peter van den Dungen

07/12/2010 20:54:09
Quote Anchor link
Ik probeer na een validatie de gekozen optie in een selectielijst terug te geven.
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)
PHP script in nieuw venster Selecteer het PHP script
1
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>


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
 
PHP hulp

PHP hulp

12/01/2025 06:45:15
 
Obelix Idefix

Obelix Idefix

07/12/2010 22:35:19
Quote Anchor link
plaats je code aub tussen [code.] en [/code.] (zonder de .) en je code wordt netjes als 1 geheel weergegeven.
 

07/12/2010 23:04:10
Quote Anchor link
Ik vind de if statements nou niet bepaald logisch.
Verder probeer je volgens mij te zorgen dat een option selected is. Zoek eens op hoe je dat doet met html.
 
Peter van den Dungen

Peter van den Dungen

08/12/2010 10:13:17
Quote Anchor link
Om het moment dat de if-statements er niet in staan, dan zal bij het opnieuw weergeven het het formulier alleen de gekozen optie beschikbaar zijn. Dus als mevr. gekozen wordt, dan zal dhr. niet meer gekozen kunnen worden.
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.
 
Chris -

Chris -

08/12/2010 10:45:22
Quote Anchor link
Er klopt niets van die statement, er komt altijd dhr of mevr uit? En die statements van boven zijn echt absurd in elkaar gezet. Werk met accolades, dan snap je de uitkomst tenminste..

Wat is er nou de bedoeling? Want uit je script is het niet te lezen..
 
Peter van den Dungen

Peter van den Dungen

08/12/2010 11:57:43
Quote Anchor link
Wat ik wil bereiken is:
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?
 
Kris Peeters

Kris Peeters

08/12/2010 12:16:06
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>
'
;
?>


* 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
 
Peter van den Dungen

Peter van den Dungen

12/12/2010 14:23:23
Quote Anchor link
Bedankt, het werkt prima op deze manier.
Als ik een class wil gebruiken voor de opmaak.
Normaal had ik
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo ..... ?>
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)
PHP script in nieuw venster Selecteer het PHP script
1
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>
      '
;
?>

</code>
 
Justin S

Justin S

12/12/2010 15:47:59
Quote Anchor link
Wát werkt er niet? Krijg je foutmeldingen, geen output of gaat je computer roken?
 
Peter van den Dungen

Peter van den Dungen

12/12/2010 15:52:49
Quote Anchor link
het laatste,

;-) Nee, ik krijg geen opmaak, zou de $opmaak_aanhef zo wel geëchoed(?) moeten worden dan?
 
- SanThe -

- SanThe -

12/12/2010 16:23:43
Quote Anchor link
Misschien de > op regel 6 weghalen?
 
Peter van den Dungen

Peter van den Dungen

12/12/2010 16:25:33
Quote Anchor link
tnx!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.