Een mooiere manier met associatieve arrays

Een associatieve array is een array met een string tussen de brackets in plaats van een getal. Bijvoorbeeld: $maanden['januari'], $maanden['februari']

Dit soort array kan ons heel goed van pas komen om het wat mooier te doen, zonder een if-constructie in elke <option> van onze selectbox.
We maken de volgende associatieve array aan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
    $maanden
= array (
        'januari' => '', 'februari' => '', 'maart' => '', 'april' => '', 'mei' => '', 'juni' => '',
        'juli' => '', 'augustus' => '', 'september' => '', 'oktober' => '', 'november' => '', 'december' => '');
?>

De array-keys zijn de maanden van het jaar en elk element bevat een lege string. Die geef ik in dit voorbeeld aan met twee enkele quotes: 'januari' => ''
$maanden['januari'] bevat dus eenvoudig een lege string. Als je hem naar het scherm zou echoën, zie je niets.

Na verzenden van het formulier is, zoals we net zagen, de waarde van de selectbox op te vragen via $_POST['maand']. Die gaan we gebruiken om het juiste element van onze associatieve array te vullen met de waarde ' selected="selected"'
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
    // stel dat $_POST['maand'] de waarde 'februari' heeft
    // dan zeggen we hieronder dus eigenlijk:
    // $maanden['februari'] = ' selected="selected"';

    if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset ($_POST['maand'])) {
        $maanden[$_POST['maand']] = ' selected="selected"';
    }

?>

Alle elementen van de array $maanden zijn nu dus leeg, op ééntje na. Nu gaan we foreach gebruiken om de array te doorlopen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
    echo '<select name="maanden">';
    foreach ($maanden as $key => $value) {
        echo '<option value="' . $key . '"' . $value . '>' . $key . '</option>';
    }

    echo '</select>';
?>

Bij de elf lege elementen in de array $maanden geeft dit als output:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
    <option value="maandnaam">maandnaam</option>

Bij het ene gevulde element krijgen we:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
    <option value="maandnaam" selected="selected">maandnaam</option>

« 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.