Der Trick mit der Funktion und dem Array

Auch hier erzähle ich dem geübten Coder wieder nichts wirklich Neues, was mich aber nicht davon abhalten soll, es dennoch zu tun. Denn oftmals hat man die Optionen für ein solches Auswahlmenü aus einer Datenbank und dann meist in einem Array. Nun kann man natürlich direkt das Array durch klickern und somit den HTML-Code generieren lassen. Und dann beim nächsten Mal wieder und so weiter. Da wird aber schnell der Code unübersichtlich und für wiederkehrende Aufgaben sollte man eh Funktionen verwenden.

Also, gehen wir mal von folgenden Grundvoraussetzungen aus. Wir haben die Optionen in eben diesem genannten Array.

1
2
3
4
5
$array_Options = array(
    'option-1' => 'Option #1',
    'option-2' => 'Option #2',
    'option-3' => 'Option #3'
);

Elegant ist es nun, wenn man dieses Array nun an eine Funktion übergeben könnte, welche daraus den HTML-Code für die Optionen innerhalb des <select> zusammensetzt. Diese Funktion könnte dann folgendermaßen aussehen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function createOptions($array_Options, $var_sSelectedValue = '') {
    $var_sOption = '';

    for($i = 0; $i < count($array_Options); $i++) {
        $var_sSelected = '';
        if(isset($var_sSelectedValue) && $var_sSelectedValue == key($array_Options)) {
            $var_sSelected = ' selected';
        }

        $var_sOption .= '<option value="' . key($array_Options) . '"' . $var_sSelected . '>' . current($array_Options) . '' . "\n";

        next($array_Options);
    }

    return ($var_sOption);
}

Wie zu erkennen ist, hat diese Funktion zwei Optionen. Die erste – “$array_Options” – ist das Array mit dem Optionen und die Zweite – “$var_sSelectedValue” – beinhaltet den Wert, welcher eventuell vor selektiert ist. Diese ist optional, das heißt, nicht zwingend notwendig.

Nun muss die Funktion nur noch an der Stelle aufgerufen werden, an der sie gebraucht wird.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
< !DOCTYPE html>
<html>
    <head>
        <meta content="utf-8" />
        <title>Create Options</title>
    </head>

    <body>
        <p>
            <select name="test">
                <?php echo createOptions($array_Options, 'option-2'); ?>
            </select>
        </p>
    </body>
</html>

Also, nichts wirklich Großes oder gar Weltbewegendes, aber ein kleiner Helfer kann es dennoch sein :-)

Artikel / Seite weiterempfehlen

Hinterlasse eine Antwort

Ihre Email-Adresse wird nicht veröffentlicht. Pflichtfelder sind durch * markiert.

Sie können folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>