value im select?

Hier mein Vorschlag zur Lösung des Problems:

Wie wärs mit einer kleinen Funktion.

Alle Werte die als option benötigt werden schreibt man in ein Array.
Also in Deinem Fall zwei arrays, z.B.:
Code:
$gender = array('männlich',
                        'weiblich');

$klasse = array('Magier',
                'Krieger',
	'Druide');

Die Funktion sieht dann so aus:
Code:
function draw_select($arr, $name, $check, $params ='') {
  $select_strg = '<select name="'.$name.'" '.$params.'>' . "\n";
  
  foreach($arr as $value) {
    if($check==$value) {
	  $select_strg .= '  <option selected>'.$value.'</option>' . "\n";
	} else {
	  $select_strg .= '  <option>'.$value.'</option>' . "\n";
	}
  }
  $select_strg .= '</select>' . "\n";
  return $select_strg;
}

Die Funktion erwartet mindesten drei Argumente
1. den Array aus dem select gebildet werden soll.
2. den Namen für das select tag
3. einen Wert auf den für das "selected" geprüft wird
4. ist optional, das können html atribute für das select tag sein.

Der Aufruf erfolgt dann einfach mit echo:

Code:
echo draw_select($klasse, 'klasse', 'Krieger');
Code:
echo draw_select($gender, 'geschlecht', 'weiblich');

Gruss
Axel
 
Zuletzt bearbeitet:
Ich hab das selbe Problem wie der Threatersteller nur will ich ein Datum aus meiner mysql DB lesen und dann auf 3 select boxen (Tag,Monat,Jahr) verteilen. Soweit hab ich das Prinzip verstanden, nur wie bekomm ich das Datum entsprechend zerlegt?
 
Mit der Funktion split().
Bsp.:
PHP:
$datum = "2005-01-25";
list($jahr, $monat, $tag) = split("-", $datum);
So würdest Du in $jahr "2005" stehen haben usw.

redlama
 
hat mir soweit sehr geholfen...
Nur das "und so weiter" bitte noch explizit angeben, wenn ich z.B den mittleren oder hinteren Teil des Datums brauche.
 
Die Funktion explode() könnte hier doch auch hilfreich sein.
Angenommen $date enthält das Datum im entsprechenden Format, bsp 2005-01-25

$array=explode("-",$date);
$jahr=$array[0];
$monat=$array[1];
 
Zurück