Zum Inhalt springen

Elegante Methode gesucht,Radio Buttons mit Checked zu erstellen, je nach Case-Fall!

Erstellt am 25. Juni 2008 · 2 Antworten · letzte Antwort am 25. Juni 2008

Tags: PHP, Frage

sefer ·

Hi,

ich habe drei Radio buttons in einem Formular. Der Spieler kann zwischen links, recht und beidfüssig auswählen.

Nun möchte ich, wenn der Spieler seine Daten editiert, das das richtige element schon gechecked ist. Deshalb habe ich das mit einer SWITCH Auswertung gemacht. Der Wert aus der Datenbank ist in $rows[0]["foot"] gespeichert. Meine Lösung unten funktioniert auch wunderbar, nur wie ihr seht ist das eine Menge Code, um nur drei Radio Buttons zu erstellen.

Gibt es einen eleganteren Weg?

<?php
	switch($rows[0]["foot"])
{
case "rechts":
	$content.='
	  <input name="'.$this-" />prefixId.'[foot]" value="links" type="radio"/> links  
	  <input name="'.$this-" />prefixId.'[foot]" value="beidfuessig" type="radio"/> beidfüssig
	  <input name="'.$this-" />prefixId.'[foot]" value="rechts" checked="checked" type="radio"/> rechts    ';      
break;

case "links":
	$content.='
	  <input name="'.$this-" />prefixId.'[foot]" value="links" checked="checked" type="radio"/> links  
	  <input name="'.$this-" />prefixId.'[foot]" value="beidfuessig" type="radio"/> beidfüssig
	  <input name="'.$this-" />prefixId.'[foot]" value="rechts"  type="radio"/> rechts    ';      
break;

case "beidfuessig":
	$content.='
	  <input name="'.$this-" />prefixId.'[foot]" value="links" type="radio"/> links  
	  <input name="'.$this-" />prefixId.'[foot]" value="beidfuessig" checked="checked" type="radio"/> beidfüssig
	  <input name="'.$this-" />prefixId.'[foot]" value="rechts"  type="radio"/> rechts    ';      
break;

default:
	$content.='
	  <input name="'.$this-" />prefixId.'[foot]" value="links" type="radio"/> links  
	  <input name="'.$this-" />prefixId.'[foot]" value="beidfuessig" type="radio"/> beidfüssig
	  <input name="'.$this-" />prefixId.'[foot]" value="rechts"  type="radio"/> rechts    ';      
}
?>
einpraegsam.​net ·
$c = 'checked="checked"';

$content.='

<input name="'.$this-">prefixId.'[foot]" value="links" type="radio" '.$rows[0]["foot"] == 'links' ? $c : ''.'/>

<input name="'.$this-">prefixId.'[foot]" value="beidfuessig" type="radio" '.$rows[0]["foot"] == 'beidfuessig' ? $c : ''./> 

<input name="'.$this-">prefixId.'[foot]" value="rechts" type="radio" '.$rows[0]["foot"] == 'rechts' ? $c : ''./> 

';
sefer ·

Jo funktioniert wunderbar,
allerdings habe ich es so geschrieben, weil es so (für mich) etwas übersichtlicher war.

<?php
$c = ' checked="checked"';
$empty = '';
$content.='<input name="'.$this->prefixId.'[foot]" value="links" type="radio"';
$content.=$rows[0]["foot"] == 'links' ? $c : $empty;
$content.='/> links';
?>

PS:Seltsamerweise fügt das Forum in deinen Code immer automatisch Anführungszeichen ein.
Aus
$this->
wird
$this-">