Probleem met session en select
Wie kan me helpen. Ik heb een select. Wanneer je iets selecteert, maar het formulier is nog niet volledig met verzenden, moet de keuze blijven staan. Dat werkt, maar ik zie de rest van het select niet meer.
Dit is het script wat ik gebruik. http://www.phptuts.nl/view/34/
Hun doen het met jaartallen, ik wil met ja en nee en later ook met andere keuzes gaan werken.
Wie o wie ken me helpen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<select id="geboortejaar" name="geboortejaar">
<?
if(isset($_SESSION['input']['geboortejaar']) && $_SESSION['input']['geboortejaar'] == $_SESSION['input']['geboortejaar'])
{
echo '<option value="'.$_SESSION['input']['geboortejaar'].'" selected="selected">'.$_SESSION['input']['geboortejaar'].'</option>';
}
else
{
echo '<option value=""></option>';
echo '<option value="Ja">Ja</option>';
echo '<option value="Nee">Nee</option>';
}?></option>
</select
<?
if(isset($_SESSION['input']['geboortejaar']) && $_SESSION['input']['geboortejaar'] == $_SESSION['input']['geboortejaar'])
{
echo '<option value="'.$_SESSION['input']['geboortejaar'].'" selected="selected">'.$_SESSION['input']['geboortejaar'].'</option>';
}
else
{
echo '<option value=""></option>';
echo '<option value="Ja">Ja</option>';
echo '<option value="Nee">Nee</option>';
}?></option>
</select
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<select id="geboortejaar" name="geboortejaar">
<?php
if(isset($_SESSION['input']['geboortejaar']) && $_SESSION['input']['geboortejaar'] == $_SESSION['input']['geboortejaar']){
echo '<option value="'.$_SESSION['input']['geboortejaar'].'"selected="selected">'.$_SESSION['input']['geboortejaar'].'</option>';
}
echo '<option value=""></option>';
echo '<option value="Ja">Ja</option>';
echo '<option value="Nee">Nee</option>';
?>
</select>
<?php
if(isset($_SESSION['input']['geboortejaar']) && $_SESSION['input']['geboortejaar'] == $_SESSION['input']['geboortejaar']){
echo '<option value="'.$_SESSION['input']['geboortejaar'].'"selected="selected">'.$_SESSION['input']['geboortejaar'].'</option>';
}
echo '<option value=""></option>';
echo '<option value="Ja">Ja</option>';
echo '<option value="Nee">Nee</option>';
?>
</select>
Wat je alleen beter kunt doen (vind ik) is met php uitlezen welke waarde eerder gekozen is en die optie dan alvast geselecteerd maken, ipv een nieuwe optie toevoegen met die waarde (beetje dubbelop). Een voorbeeld hiervan is:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<select name="geboortejaar">
<?php
$options = array('Ja','Nee');
if (isset($_SESSION['input']['geboortejaar']) && $_SESSION['input']['geboortejaar'] != ''){
$selected_waarde = $_SESSION['input']['geboortejaar'];
}
foreach ($options as $waarde){
if ($waarde == $selected_waarde){
$selected = ' selected ';
}else{
$selected = '';
}
echo '<option value="'.$waarde.'" '.$selected.'>'.$waarde.'</option>';
}
?>
</select>
<?php
$options = array('Ja','Nee');
if (isset($_SESSION['input']['geboortejaar']) && $_SESSION['input']['geboortejaar'] != ''){
$selected_waarde = $_SESSION['input']['geboortejaar'];
}
foreach ($options as $waarde){
if ($waarde == $selected_waarde){
$selected = ' selected ';
}else{
$selected = '';
}
echo '<option value="'.$waarde.'" '.$selected.'>'.$waarde.'</option>';
}
?>
</select>
Misschien een domme opmerking erbij, maar als iemand mij vraagt of ik een geboortejaar heb of niet, antwoord ik altijd met Ja, nooit met Nee. Ik denk dat iedereen dat doet.
Gewijzigd op 25/12/2013 20:30:55 door Albert de Wit
Bedankt voor je hulp, zeker dat laatste kan ik goed gebruiken, ziet er eenvoudiger uit :)
Ga ermee aan de slag, thanks!