Forum Doku Wiki Blog

Forumsarchiv 2005, November
Problem mit checkboxen

archivierte Beiträge lesen

  1. (PHP) Problem mit checkboxen von Rudi, 03. 11. 2005, 10:07

Problem mit checkboxen

Der folgende Beitrag wurde am 03. 11. 2005, 10:07 Uhr von Rudi veröffentlicht.

Ich lasse mir in einem Formular checkboxen anzeigen. Dabei werden die checkboxen vormarkiert, deren Werte sich in der Datenbank befinden:

mysql_select_db("datenbank");
        $res = mysql_query("select * from tabelle");
        $num = mysql_num_rows($res);
if ($num == 1){
   $dsatz = mysql_fetch_assoc($res);

$typ = unserialize($dsatz['typ']);

<input type="checkbox" name="typ[]" value="Warmwasser" <?php if (in_array('Warmwasser', $typ)){echo "checked";}?>> Warmwasser
<input type="checkbox" name="typ[]" value="Warmluft" <?php if (in_array('Warmluft', $typ)){echo "checked";}?>> Warmluft
<input type="checkbox" name="typ[]" value="Teilweise Warmluft" <?php if (in_array('Teilweise Warmluft', $typ)){echo "checked";}?>> Teilweise Warmluft

Das funktioniert auch soweit.
Jedoch bei einem weiteren Feld mit checkboxen wird folgende Fehlermeldung hinter jeder checkbox angezeigt:

Warning: Wrong datatype for second argument in call to in_array in

Bei diesem Feld wurden keine checkboxen angewählt, d.h. er sucht nach den Werten, findet keine in der Spalte der Datenbank und schickt dann diese Fehlermeldung.
Wie kann ich das abstellen, dass er mir die Fehlermeldung anzeigt?

Problem mit checkboxen

Der folgende Beitrag wurde am 03. 11. 2005, 10:11 Uhr von wahsaga veröffentlicht.

hi,

gehört diese Frage nicht eigentlich auch noch zu deinem anderen Thread, Ich kann checkboxen nicht auswerten ...?

> $typ = unserialize($dsatz['typ']);

Kontrollausgabe $typ mittels var_dump()?

> <input type="checkbox" name="typ[]" value="Warmwasser" <?php if (in_array('Warmwasser', $typ)){echo "checked";}?>> Warmwasser
> [...]
> Jedoch bei einem weiteren Feld mit checkboxen wird folgende Fehlermeldung hinter jeder checkbox angezeigt:
>
> Warning: Wrong datatype for second argument in call to in_array in

Hast du verstanden, was diese Meldung bedeutet?

> Bei diesem Feld wurden keine checkboxen angewählt, d.h. er sucht nach den Werten, findet keine in der Spalte der Datenbank und schickt dann diese Fehlermeldung.
> Wie kann ich das abstellen, dass er mir die Fehlermeldung anzeigt?

In den du entweder dafür sorgst, dass zumindest der Typ des zweiten Parameters für in_array() korrekt ist - oder die Abfrage in dem Fall, dass es keine Werte gibt, auch gar nicht ausführst.

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

Problem mit checkboxen

Der folgende Beitrag wurde am 03. 11. 2005, 11:24 Uhr von Rudi veröffentlicht.

Danke,
ich habe es mal so versucht, aber das Ergebnis ist das selbe

<?php if (in_array('Warmwasser', $typ)){echo "checked";} else if (in_array('', $typ)){echo "";}?>

Problem mit checkboxen

Der folgende Beitrag wurde am 03. 11. 2005, 11:52 Uhr von wahsaga veröffentlicht.

hi,

> ich habe es mal so versucht, aber das Ergebnis ist das selbe

Und was schließt du daraus?
Könnte es vielleicht sein, dass du den gleichen Fehler immer noch machst?

> <?php if (in_array('Warmwasser', $typ)){echo "checked";} else if (in_array('', $typ)){echo "";}?>

Wenn du also immer noch die Meldung
> Wrong datatype for second argument in call to in_array
bekommst, dann ist $typ wohl an dieser Stelle immer noch kein Array - also was soll der Blödsinn, dass du immer noch versuchst, eine Array-Funktion darauf anzuwenden?

Lies meine vorherige Antwort bitte noch mal, und zwar diesmal mit Verstand. Und beantworte bitte die Fragen.
Wenn du die Antwort fast komplett ignorierst, und dann nur den gleichen Unfug noch mal machst, kommst du bei der Lösung des "Problems" wohl kaum weiter.

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

Problem mit checkboxen

Der folgende Beitrag wurde am 03. 11. 2005, 12:05 Uhr von Rudi veröffentlicht.

In der angesprochenen Spalte in der Datenbank kommen die Daten so an:

a:3:{i:0;s:17:"Warmwasserheizung";i:1;s:15:"Warmluft";

Gehe ich recht davon aus, dass es sich um ein Array handelt, Meister?

Problem mit checkboxen

Der folgende Beitrag wurde am 03. 11. 2005, 12:10 Uhr von wahsaga veröffentlicht.

hi,

> In der angesprochenen Spalte in der Datenbank kommen die Daten so an:
> a:3:{i:0;s:17:"Warmwasserheizung";i:1;s:15:"Warmluft";

Das ist ein Textstring.
Ja, er sieht so aus, als ob man unserialize() darauf erfolgreich anwenden könnte.

> Gehe ich recht davon aus, dass es sich um ein Array handelt, Meister?

Gehe ich recht in der Annahme, dass du dies für $typ immer noch nicht _überprüft_ hast, Mr. {eine_Bezeichnung_spare_ich_mir_hier}?

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

Problem mit checkboxen

Der folgende Beitrag wurde am 03. 11. 2005, 12:20 Uhr von RUDI veröffentlicht.

Wenn ich also
$typ = unserialize($dsatz['typ']);
echo "$typ";

eingebe, wird anstelle von $typ array angezeigt

Problem mit checkboxen

Der folgende Beitrag wurde am 03. 11. 2005, 12:27 Uhr von wahsaga veröffentlicht.

hi,

> Wenn ich also
> $typ = unserialize($dsatz['typ']);
> echo "$typ";
> eingebe, wird anstelle von $typ array angezeigt

Und var_dump($typ) ergibt was?

Was passiert, wenn du die Testausgabe exakt vor der Stelle machst, an der du die Meldung erhältst?

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

Problem mit checkboxen

Der folgende Beitrag wurde am 03. 11. 2005, 12:32 Uhr von Rudi veröffentlicht.

Dann erscheint dies
Warning: Undefined variable: typ in ...
NULL

Problem mit checkboxen

Der folgende Beitrag wurde am 03. 11. 2005, 12:39 Uhr von Siechfred veröffentlicht.

Tag Rudi.

> Warning: Undefined variable: typ in ...

Du solltest vor dem Benutzen von in_array() abfragen, ob die Variable $typ definiert, nicht leer und ungleich 0 ist. Zusätzlich wäre es evtl. noch erforderlich zu prüfen, ob $typ tatsächlich auch ein Array ist.

Siechfred
--
Über den Verlust eines geliebten Menschen | Denis "Piggy" D'Amour - ein Nachruf

Problem mit checkboxen

Der folgende Beitrag wurde am 03. 11. 2005, 12:53 Uhr von Rudi veröffentlicht.

Ich habe es jetzt hiermit erweitert

<?php if ($typ != '0'){if (in_array('Warmwasserheizung', $typ)){echo "checked";}}?>

So funktioniert es

Problem mit checkboxen

Der folgende Beitrag wurde am 03. 11. 2005, 13:34 Uhr von wahsaga veröffentlicht.

hi,

> Ich habe es jetzt hiermit erweitert
> <?php if ($typ != '0'){if (in_array('Warmwasserheizung', $typ)){echo "checked";}}?>
> So funktioniert es

Siechfred hat dir doch extra eine Funktion zur Überprüfung verlinkt - also warum machst du es derart unsinnig?

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4