Inhalt checkbox anzeigen

Ich habe eine checkbox, deren Inhalt (1 oder 0, je nachdem ob angeklickt oder nicht) in einer datenbank abgespeichert wird. Funktioniert

Nun möchte ich den Inhalt der datenbank für Änderungen wieder anzeigen, d. h. im Kästchen der checkbox soll ein häkchen ertscheinen, wenn in db eine 1 abgespeichert ist, kein häkchen wenn inhalt db 0)

Versuche ich wie folgt (funktioniert bei allen anderen feldern):

[php]
echo ‚

Anzeige J/N ?
‘;
[/php]

Die checkbox bleibt aber immer blank, wie muss ich es anstellen, dass bei 1 in der db in der checkbox ein häkchen angezeigt wird

Wie ist denn „tel“ definiert? Oder meinst du $tel?

Nach meinem Wissensstand, ist das HTML Attribut „checked“ für die Makierung zuständig.
Z.b.:
[html][/html]Mfg

Danke, habe mich wohl missverständlich ausgedrückt.

Mir geht es nicht darum, festzustellen, ob checked (das habe ich ja bereits und das Eregebnis in der datenbank gespeichert).

Mir geht es darum, wie ich - wenn ich die daten aus der datenbank wieder einlese -
darstellen kann (in einer checkbox), was in der datenbank gespeichert ist.

Bei normalen feldern habe ich das so gelöst:
[php]
echo ‚‘;
[/php]

Funktioniert einwandfrei, und nun suche ich eine Möglichkeit, gleiches mit einer checkbox zu veranstalten (im formular soll also der inhalt einer checkbox angekreuzt sein oder nicht, je nachdem, welcher zustand in der datenbank gespeichert ist !)

Ich glaube du hast die Zahl nicht verstanden. Genau dafür gibt es die Eigenschaft checked

mach einfach
[PHP]$string = str_replace(‚value=‘„‚.$farbe.‘“‚,‚value=‘"‘.$farbe.‚" checked=„checked“‘,$string);
echo $string:[/PHP]

Bisschen viele Anführungszeichen, Asterixus! :wink:

Danke, Habe ich auch nicht, wie muss ich denn in diesem Zusammenhang checked einsetzen

Muss übrigens natürlich $tel heissen

danke, aber funktioniert leider nicht (syntaxfehler)

Ich weiß zwar gerade nicht was genau dein Problem ist, aber ich berichtige mal:

[php]$string = str_replace(‚value="‘ . $farbe . ‚„, value=“‘ . $farbe . ‚" checked=„checked“‘, $string);[/php]

Ich habe es jetzt verstanden. leider wird aber - wenn ich es so anwende - immer Ja (1) also Häkchen - angezeigt.

Muss das Feld in der datenbank evtl. ein bestimmtes format haben

auch mit der berichtigten version laufe ich auf diesen fehler:

Warning: Wrong parameter count for str_replace() in C:\Programme\xampp\htdocs\ub222ANZ.inc.php on line 269

Ups… meine „Berichtigung“ war wohl auch nicht so ganz richtig!

[php]$string = str_replace(‚value="‘ . $farbe . ‚"‘, ‚value="‘ . $farbe . ‚" checked=„checked“‘, $string); [/php]

Allerdings sollte selbst ein Anfänger den Fehler mit Hilfe der Fehlermeldung in 1 Sekunde finden können!

$tel hat immer nur 1 oder 0 und bei 1 solls makiert sein?
Dann zb so:
[PHP]<?php if($tel === 1) { $check = "checked=\"checked\""; } ?>
<input type=„checkbox“ name=„tel“ id=„tel“ value=„…“ <?php echo $check; ?> /> [/PHP]
Meinst du sowas vielleicht?

Dann hab ich auch noch was anzubieten :slight_smile:

[php]<input type=„checkbox“ name=„tel“ id=„tel“ value=„…“

<?php echo ($tel === 1 ? 'checked="checked"' : ''); ?> />[/php]

funktioniert auch so nicht

Leider immer blank wenn so
[php]
<input type=„checkbox“ name=„tel“ id=„tel“ value=„…“

<?php echo ($tel === 1 ? 'checked="checked"' : ''); ?> />

[/php]

Was muss value enthalten

sorry, funktioniert doch, lag an einer zuweisung
vielen dank an alle

hallo asipak, jetzt habe ich damit doch noch ein problem:

wenn $tel gleich 1 ist, wird zwar der richtige text angezeigt (also die 1 erkannt), aber der haken nicht gesetzt

weise ich explizit dem feld $tel (das ja eigentlich bereits die 1 enthält) die 1 vor deinem/jetzt meinem befehl zu, wird nicht nur der text richtig angezeigt, sondern auch der haken richtig gesetzt.

Woran könnte das liegen

int != string? ersetze === 1 durch == „1“, dann könnte die „1“ aus der DB auch erkannt werden, oder wandel die 1 in der DB als int um.

Mfg

ich habe die 1 in der datenbank in format int abgeändert, ergebnis ist aber noch immer das gleiche

1 wird erkannt und der richtige text ausgegeben, aber der haken wird nicht gesetzt

Wo könnte ich noch nach der ursache suchen