Probleem met session en select

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Roel H

Roel H

25/12/2013 19:07:11
Quote Anchor link
Hallo allemaal,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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
 
PHP hulp

PHP hulp

25/04/2024 03:26:35
 
Albert de Wit

Albert de Wit

25/12/2013 20:24:39
Quote Anchor link
Wat jij probeert te krijgen is dat het eerdere ingevulde antwoord alvast geselecteerd is. Wat je hier krijgt is alleen de eerder ingevulde waarde. Dat komt door die if statement. Een if-else statement kan maar 1 van de 2 uitvoeren. Het else-gedeelte van een if statement zegt alleen dat als de if-statement niet 'true' terug geeft, dat dan else uitgevoerd moet worden. In dit geval kun je dus beter geen else gebruiken, alleen een if.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>


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)
PHP script in nieuw venster Selecteer het PHP script
1
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>


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
 
Roel H

Roel H

27/12/2013 13:34:56
Quote Anchor link
Haha het is niet voor geboortejaar, maar dat had ik nog niet veranderd ;-)
Bedankt voor je hulp, zeker dat laatste kan ik goed gebruiken, ziet er eenvoudiger uit :)
Ga ermee aan de slag, thanks!
 



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.