Waarde opvragen en de juiste optie selecteren

Stel dat je formulier er zo uit ziet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <select name="maand">
        <option value="januari">januari</option>
        <option value="februari">februari</option>
        <option value="maart">maart</option>
        <!-- enzovoort -->
    </select>
</form>

Dan is na verzenden van het formulier de waarde van de selectbox op te vragen via:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        if (isset ($_POST['maand'])) {
            echo '<p>Gekozen maand: ' . $_POST['maand'] . '</p>';
        }
    }

?>

Om de waarde van de selectbox goed te zetten zou je dus bij elke <option> moeten checken of de waarde overeenkomt met $_POST['maand']:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <select name="maand">
        <option value="januari"<?php if ($_POST['maand'] == 'januari') echo ' selected="selected"'; ?>>januari</option>
        <option value="februari"<?php if ($_POST['maand'] == 'februari') echo ' selected="selected"'; ?>>februari</option>
        <option value="maart"<?php if ($_POST['maand'] == 'maart') echo ' selected="selected"'; ?>>maart</option>
        <!-- enzovoort -->
    </select>
</form>

Dit werkt ook wel, maar zal de eerste keer dat de pagina laadt een notice geven, als je tenminste je error_reporting op E_ALL hebt staan, zoals het hoort. Dan bestaat de variabele $_POST['maand'] niet omdat het formulier nog niet verzonden is. Je zult dan een notice krijgen: undefined index 'maand'

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Selectief Geheugen
  2. Waarde opvragen en de juiste optie selecteren
  3. Een kortere manier zonder notices
  4. Een mooiere manier met associatieve arrays
  5. Meer dan 1 selectbox: automatisch genereren
  6. Eureka: multidimensionale array!

PHP tutorial opties

 
 

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.