• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Inhalt checkbox anzeigen

FreddyS

Neues Mitglied
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 '<p><input type="checkbox" name="tel" id="tel" value="'.tel.'">Anzeige J/N ?<br>';

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:
<input type="checkbox" name="tel" id="tel" value="...." checked="checked" />
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 '<td><input type="text"  maxlengt="12" size="12" style="border:#808000 1px solid; color:#808000;" id="farbe" name="farbe" value="'.$farbe.'"></td>';

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:
 
Danke, Habe ich auch nicht, wie muss ich denn in diesem Zusammenhang checked einsetzen

Muss übrigens natürlich $tel heissen
 
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);
 
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);

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; ?> />
Meinst du sowas vielleicht?
 
Dann hab ich auch noch was anzubieten :)

PHP:
<input type="checkbox" name="tel" id="tel" value="...." 
  <?php echo ($tel === 1 ? 'checked="checked"' : ''); ?> />
 
Leider immer blank wenn so
PHP:
<input type="checkbox" name="tel" id="tel" value="...." 
  <?php echo ($tel === 1 ? 'checked="checked"' : ''); ?> />

Was muss value enthalten
</span>
 
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
 
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
 
Zurück
Oben