2016-07-24 17 views
0

Ich versuche, eine sehr einfache Sache zu tun - legen Sie fest, ob ein Kontrollkästchen aktiviert ist oder nicht basierend auf dem booleschen Wert in einer Zeile kommt. Ich hatte ursprünglich ein ' wenn dann "Aussage, aber die Ergebnisse schienen willkürlich zu sein. Also habe ich es genau darauf reduziert, und ich verstehe immer noch nicht, was passiert.Was ist die korrekte Syntax, um Checkbox-Status basierend auf Boolean

Der Code lautet wie folgt:

<td><input name="DFlag[]" type="checkbox" <?php if ($row[$i]['DFlag'] = 0) {echo "unchecked";} ?> </td> 

Es gibt zwei Reihen in der Datenbank, eine, die die Boolesche Flag auf gesetzt hat (1) und die andere auf OFF (0), wobei beide Reihen auf dem Bildschirm wird als nicht markiert angezeigt.

Ich habe die Zeile geändert:

<td><input name="DFlag[]" type="checkbox" <?php if ($row[$i]['DFlag'] = 1) {echo "checked";} ?> </td> 
als aufgegebene

und beide Leitungen kommen. Beachten Sie, dass alle anderen Daten für beide Zeilen korrekt ausgefüllt werden. Nur nicht die Kontrollkästchen!

Wenn ich die Zeile zu ändern:

<td><input name="DFlag[]" type="checkbox" <?php if ($row[$i]['DFlag'] = 1) {echo "checked";}; if ($row[$i]['Display_Address_On_Roster_Flag'] = 0) {echo "unchecked";} ?> </td> 

sie beide wieder überprüft.

+0

Mögliche Duplikat [Speichern Checkbox (boolean) Werte in MySQL-Datenbank mit PHP] (http://stackoverflow.com/questions/32592570/save-checkbox-boolesche-Werte-in-mysql-Datenbank-mit-PHP – s952163

Antwort

1

Die if s sollte == sein, nicht =. Indem Sie = verwenden, setzen Sie sie gleichzeitig auf true.

if ($row[$i]['DFlag'] = 1) 

zu

if ($row[$i]['DFlag'] == 1) 

etc ...