Benutzer-Werkzeuge

Webseiten-Werkzeuge


php:dom_html

HTML-Tags mit DOM erstellen

Mit der folgenden Funktion kann aus einem Array eine HTML-Auswahl-Liste erzeugt werden.

getSelector.php
function getSelector( $entries, $parameter = array(), $firstEntry = "", $selEntry = "", $noEntriesMessage = "" )
{
    $doc = new DOMDocument( '1.0' ); // neues DOM-Objekt erstellen
    $doc->formatOutput = true; // Zeilenumbrüche hinzufügen
    $sel = $doc->appendChild( $doc->createElement( 'select' ) );
 
    if( count( $parameter ) > 0 ) // wenn Parameter übergeben wurden
    {
        foreach( $parameter as $att=>$val )
            $sel->setAttribute( $att, $val ); // Parameter zum "select" hinzufügen
    }
 
    if( count( $entries) > 0) { // wenn Daten übergeben wurden
 
        if( !empty( $firstEntry ) ) { // wenn ein "erster Eintrag" übergeben wurde
            $opt = $sel->appendChild( $doc->createElement('option') );
            $opt->appendChild( $doc->createTextNode( $firstEntry ) );
            $opt->setAttribute( "value", "-1" );
            $opt->setAttribute( "selected", "" );
        }
 
        foreach( $entries as $key=>$val ) { // Einträge ins DOM-Objekt übernehmen
            $opt = $sel->appendChild( $doc->createElement('option') );
            $opt->appendChild( $doc->createTextNode( $val ) );
            $opt->setAttribute( "value", $key );
 
            if( empty( $firstEntry ) & $key == $selEntry )
                $opt->setAttribute( "selected", "" ); // vorausgewählten Eintrag setzen
        }
    }
    else // wenn keine Daten übergeben wurden
    {
        $opt = $sel->appendChild( $doc->createElement( 'option' ) );
        $opt->appendChild( $doc->createTextNode( $noEntriesMessage ) );
    }
 
    return $doc->saveHTML(); // DOM-Objekt als HTML ausgeben
}

Anwendungsbeispiel für die Funktion getSelector:

$parameter =  array( "name" => "car", "id" => "Automarke", "class" => "mySelector");
 
$entries[] = "BMW";
$entries[] = "Ford";
$entries[] = "VW";
 
echo getSelector( $entries, $parameter, "Lieblings-Marke aussuchen:" );

Mit dem Parameter „selEntry“ besteht die Möglichkeit, den Key eines Elements zu übergeben, welches vorausgewählt sein soll, sofern kein „firstEntry“ übergeben wurde. Ist der Parameter „firstEntry“ nicht leer, wird immer dieser vorausgewählt.

Beispiel:

$Kunden = array();
$Kunden[1] = "Meier";
$Kunden[2] = "Koch";
$Kunden[3] = "Schmidt";
 
echo getSelector( $Kunden, array(), "", "2", "keine Kunden gefunden" );
php/dom_html.txt · Zuletzt geändert: 2015/12/19 00:00 (Externe Bearbeitung)