Erstellt aus einem übergebenen Array ein Auswahlfeld in HTML. Als erstes ist das Array mit den Werten zu übergeben. Die verwendeten Schlüssel entsprechen den Option-Values. Wird hier ein mehrdimensionales Array übergeben, so werden automatisch OPTGROUPS angelegt, die als Label den Schlüssel des Elements haben. Zweiter Parameter ist ein Array mit Definitionen zu den Attributen des SELECT-Tags. Der Schlüsselname entspricht dem Attribut, der Wert dem Attribut-Wert. Letzter Parameter ist der vorselektierte Eintrag der Liste. Dieser Wert muss mit der Schlüsselbezeichnung im Werte-Array (Parameter 1) übereinstimmen. Im Fehlerfall wird FALSE zurückgegeben.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
<?php /** * Erstellt aus einem übergebenen Array ein Auswahlfeld in HTML. * Als erstes ist das Array mit den Werten zu übergeben. Die verwendeten Schlüssel entsprechen * den Option-Values. Wird hier ein mehrdimensionales Array übergeben, so werden automatisch * OPTGROUPS angelegt, die als Label den Schlüssel des Elements haben. Zweiter Parameter ist * ein Array mit Definitionen zu den Attributen des SELECT-Tags. Der Schlüsselname entspricht dem * Attribut, der Wert dem Attribut-Wert. Letzter Parameter ist der vorselektierte Eintrag der * Liste. Dieser Wert muss mit der Schlüsselbezeichnung im Werte-Array (Parameter 1) * übereinstimmen. * Im Fehlerfall wird FALSE zurückgegeben. * * @param array $groups [, array $attributes = array() [, string $selected = ""]] * @return string * @see http://www.php-function.de/funktion/strings/html_select_field/ */ function html_select_field($groups, $attributes = array(), $selected = ""){ // Zuerst: SELECT generieren (mit Attributen) if(!is_array($groups)) return FALSE; $return = "\n"; $return .= '<select'; if(count($attributes)) foreach($attributes as $tag => $val) $return .= " ".$tag.'="'.($val == "" ? $tag : $val).'"'; $return .= ">"."\n"; // Dann: Werte durchlaufen foreach($groups as $group_key => $group_val){ // OPTGROUP öffnen if(is_array($group_val)){ $return .= "\t"."<optgroup label=\"".$group_key."\">"."\n"; $values = $group_val; }else{ $values = array($group_key => $group_val); } // OPTIONS schreiben foreach($values as $key => $val){ $return .= "\t\t".'<option value="'.$key.'"'; if($key == $selected) $return .= " selected"; $return .= ">".$val.'</option>'."\n"; } // OPTGROUP schließen if(is_array($group_val)) $return .= "\t"."</optgroup>"."\n"; } // Schließlich: SELECT schließen $return .= "</select>"."\n"; return $return; } ?> |
Schreibe einen Kommentar