Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
php:dom_html [2015/08/12 10:31] webproducer angelegt |
php:dom_html [2015/12/19 00:00] (aktuell) |
||
---|---|---|---|
Zeile 4: | Zeile 4: | ||
<code php getSelector.php> | <code php getSelector.php> | ||
- | function getSelector( $entries, $firstEntry = "", $noEntriesMessage, $selected = "" ) | + | 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 | ||
{ | { | ||
- | $doc = new DOMDocument( '1.0' ); // neues DOM-Objekt erstellen | + | foreach( $parameter as $att=>$val ) |
- | $doc->formatOutput = true; // Zeilenumbrüche hinzufügen | + | $sel->setAttribute( $att, $val ); // Parameter zum "select" hinzufügen |
- | $sel = $doc->appendChild( $doc->createElement( 'select' ) ); | + | } |
- | if( count( $entries) > 0) { // Daten vorhanden | + | if( count( $entries) > 0) { // wenn Daten übergeben wurden |
- | if( !empty( $firstEntry ) ) { | + | if( !empty( $firstEntry ) ) { // wenn ein "erster Eintrag" übergeben wurde |
- | $opt = $sel->appendChild( $doc->createElement('option') ); | + | $opt = $sel->appendChild( $doc->createElement('option') ); |
- | $opt->appendChild( $doc->createTextNode( $firstEntry ) ); | + | $opt->appendChild( $doc->createTextNode( $firstEntry ) ); |
- | $opt->setAttribute( "value", "-1" ); | + | $opt->setAttribute( "value", "-1" ); |
- | } | + | $opt->setAttribute( "selected", "" ); |
+ | } | ||
- | foreach( $entries as $key=>$val ) { | + | foreach( $entries as $key=>$val ) { // Einträge ins DOM-Objekt übernehmen |
- | $opt = $sel->appendChild( $doc->createElement('option') ); | + | $opt = $sel->appendChild( $doc->createElement('option') ); |
- | $opt->appendChild( $doc->createTextNode( $val ) ); | + | $opt->appendChild( $doc->createTextNode( $val ) ); |
- | $opt->setAttribute( "value", $key ); | + | $opt->setAttribute( "value", $key ); |
- | if( $key == $selected ) | + | if( empty( $firstEntry ) & $key == $selEntry ) |
- | $opt->setAttribute( "selected", "" ); | + | $opt->setAttribute( "selected", "" ); // vorausgewählten Eintrag setzen |
- | } | + | |
} | } | ||
- | else // keine Daten vorhanden | ||
- | { | ||
- | $opt = $sel->appendChild( $doc->createElement( 'option' ) ); | ||
- | $opt->appendChild( $doc->createTextNode( $noEntriesMessage ) ); | ||
- | } | ||
- | |||
- | return $doc->saveHTML(); // DOM-Objekt als HTML ausgeben | ||
} | } | ||
+ | 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 | ||
+ | } | ||
</code> | </code> | ||
Zeile 40: | Zeile 47: | ||
<code php> | <code php> | ||
- | $Kunden = array(); | + | $parameter = array( "name" => "car", "id" => "Automarke", "class" => "mySelector"); |
- | $Kunden[1] = "Müller"; | + | |
- | $Kunden[2] = "Meier"; | + | $entries[] = "BMW"; |
- | $Kunden[3] = "Schmidt"; | + | $entries[] = "Ford"; |
+ | $entries[] = "VW"; | ||
- | echo getSelector( $Kunden, "-- bitte Kunde auswählen --", "keine Kunden gefunden" ); | + | echo getSelector( $entries, $parameter, "Lieblings-Marke aussuchen:" ); |
</code> | </code> | ||
- | Mit dem letzten Parameter "selected" besteht die Möglichkeit, den Key eines Elements zu übergeben, welches vorausgewählt sein soll. | + | 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: | Beispiel: | ||
<code php> | <code php> | ||
$Kunden = array(); | $Kunden = array(); | ||
- | $Kunden[1] = "Müller"; | + | $Kunden[1] = "Meier"; |
- | $Kunden[2] = "Meier"; | + | $Kunden[2] = "Koch"; |
$Kunden[3] = "Schmidt"; | $Kunden[3] = "Schmidt"; | ||
- | echo getSelector( $Kunden, "", "keine Kunden gefunden", 2 ); | + | echo getSelector( $Kunden, array(), "", "2", "keine Kunden gefunden" ); |
</code> | </code> |