ChrisB: Checkboxen in while-Schleife

Beitrag lesen

Hi,

if($data->frei[$data->id]==1) {

$chk="CHECKED";
  } else {
  $chk="0";
  }
echo "<INPUT TYPE='checkbox' NAME='frei[$data->id]'  VALUE='1'".($data->frei[$data->id]==1) ? $chk : "".">";


>   
> Wenn ich die Bedingung in der checkbox rausnehme und nur  
> `echo "<INPUT TYPE='checkbox' NAME='frei[$data->id]'  VALUE='1'">";`{:.language-php} schreibe geht es (aber dann sehe ich nach dem Update eben nicht mehr, was gecheckt ist...)  
  
Wieso weist du denn $chk entweder "CHECKED" oder "0" zu? Was soll der Wert "0" bewirken?  
Und wieso machst du die Abfrage eigentlich doppelt - einmal, um $chk einen Wert zuzuweisen, und dann noch mal, um $chk entweder auszugeben oder nicht?  
  
Also entweder machst du erst die Abfrage, um $chk entweder den Wert "CHECKED" oder gar nichts (Leerstring) zuzuweisen - und gibst das dann einfach im echo-Statement aus;  
oder du machst die Abfrage im echo-Statement mit dem tenaeren Operator, und gibst da dann CHECKED oder nichts aus -  
aber so doppelt gemoppelt ist Unfug.  
  

> Also liegt es irgendwie an der Bedingung `($data->frei[$data->id]==1) ? $chk : ""`{:.language-php}  
  
Dass es mit dem tenaeren Operator so nicht "funzt", dazu hatten wir letzte Tage erst einen Thread - auch du hast hier die [Operator-Rangfolge](https://forum.selfhtml.org/?t=181597&m=1200965) nicht beruecksichtigt.  
  
MfG ChrisB  
  

-- 
„This is the author's opinion, not necessarily that of Starbucks.“