Ich kann checkboxen nicht auswerten
Rudi
- php
Ich habe in meinem Formular checkboxen:
<input type="checkbox" name="brennstoffe[]" value="Erdgas"> Erdgas
input type="checkbox" name="brennstoffe[]" value="Heizöl"> Heizöl
<input type="checkbox" name="brennstoffe[]" value="Fernwärme"> Fernwärme
<input type="checkbox" name="brennstoffe[]" value="Kohle"> Kohle
<input type="checkbox" name="brennstoffe[]" value="Erneuerbare Energiequellen"> Erneuerbare Energiequellen (z.B. Holz)
<input type="checkbox" name="brennstoffe[]" value="Solare Brauchwassererwärmung"> Solare Brauchwassererwärmung
Es können beliebig viele Kästchen angewählt werden. Wie bekomme ich die Werte in meine Datenbank in eine Spalte ?
Danke sehr
Tag Rudi.
Ich habe in meinem Formular checkboxen: [...] Es können beliebig viele Kästchen angewählt werden. Wie bekomme ich die Werte in meine Datenbank in eine Spalte ?
Du kennst sicher Wie kann ich Checkboxen verarbeiten?. Wie schauen also deine bisherigen Versuche aus und wie ist deine Datenbank aufgebaut (Felder, Datentypen)?
Siechfred
Mein bisheriger Versuch ist
$brennstoffe = serialize($_POST["brennstoffe"]);
Dann kommt aber nur ein Wert in die Datenbank
Der Dattyp in der Datenbank ist Mediumtext
Hallo Siechfred!
Hast Du den Link verfolgt _und_ gelesen, den Dir Rudi gepostet hat?
Schönen Gruß
Afra
Ja den habe ich zehnmal verfolgt, aber bei diesem Beispiel werden die Werte angezeigt und nicht in eine Datenabnk gespeichert, deshalb komme ich mit ihm nicht klar.
Hallo!
Wo ist der prinzipielle Unterschied zwischen Ausgabe und Speichern von Daten? In beiden Fällen liegen die Daten auf Serverseite vor. An Stelle der Ausgabe speicherst Du die Daten einfach ab.
Schönen Gruß
Afra
Also ich habe das jetzt so gemacht
if (isset($_POST['brennstoffe'])) {
reset($_POST['brennstoffe']);
foreach ($_POST['brennstoffe'] as $k => $v)
mysql_query("insert into tabelle(brennstoffe) values ($brennstoffe)");
Was ich anstelle von print "... eingeben soll weiß ich nicht
Tag Rudi.
if (isset($_POST['brennstoffe'])) {
reset($_POST['brennstoffe']);
foreach ($_POST['brennstoffe'] as $k => $v)
mysql_query("insert into tabelle(brennstoffe) values ($brennstoffe)");
Ups, warum so umständlich? Und wo bitte sind die Quotes um $brennstoffe? So in etwa müsste es eigentlich funzen[tm]:
$brennstoffe = serialize($_POST['brennstoffe']);
$statement = sprintf("INSERT INTO tabelle SET brennstoffe='%s'", mysql_real_escape_string($brennstoffe));
Irrtümer mögen die PHP-Experten aufklären :-)
Siechfred
Ich habe das jetzt so gemacht
if (isset($_POST['brennstoffe'])) {
reset($_POST['brennstoffe']);
foreach ($_POST['brennstoffe'] as $k => $v){
$brennstoffe = implode(', ',$brennstoffe);}}
Jetzt erscheint aber folgender Fehler:
Bad arguments to implode() in
Was sagt diese Meldung aus ?
Hallo Siechfred!
Beschäftige Dich zuerst einmal damit PHP zu verstehen udn einsetzen zu können. Implode hat folgende Argumente die man übergeben muss: string implode ( string glue, array pieces ) Da scheitert es bei Dir daran.
Mehr findest Du unter PHP-Handbuch
Schönen Gruß
Afra
Mittlerweile habe ich das Problem gelöst, um die Werte in die Datenbank einzutragen. Mittels serialize
Jetzt besteht nur noch das Problem, dass ich mir in einem Formular nur die Kästchen angekreuzt haben möchte, desen values denselben Wert haben wie die Werte die ich mittels des ersten Formulars angekreuzt habe. D.h. es wird angezeigt welche Kreuze wurden gemacht.
Hallo Siechfred!
Tag afra.
Beschäftige Dich zuerst einmal damit PHP zu verstehen udn einsetzen zu können.
Ja, du hast ja Recht :-)
Mehr findest Du unter PHP-Handbuch
Oh, das kenne ich aber schon!
Siech*gg*fred
Ahhhrg ;o(
Wieso werfe ich Eure Namen durcheinander...?
Afra
Hallo Siechfred!
Tag afra.
Hast Du den Link verfolgt _und_ gelesen, den Dir Rudi gepostet hat?
Oh, er hat mir einen Link gepostet? *klick* *brille putz* *klick again* Ja, wo denn?
Siech*SCNR*fred
Hallo Siechfred!
Ich hatte irgendwie die Namen verdreht. Passiert mir nie mehr ;o)
Schönen Gruß
Afra
Tag Rudi.
$brennstoffe = serialize($_POST["brennstoffe"]);
Hast du dir mal angesehen, was dabei herauskommt? Wie fügst du diesen String in deine Datenbank ein? Hast du daran gedacht, dass dir die Doublequotes in deinem serialisierten String evtl. einen Streich spielen könnten, du solltest den String vor dem Eintrag in die DB noch vorbehandeln (z.B. mit mysql_real_escape_string), damit es keine Probleme gibt. Ansonsten wäre ein bisschen mehr Code hilfreich.
Siechfred
du solltest dem array einen schlüssel geben. dann kannst du mit dem foreach key ==> value konstrukt arbeiten.
also so:
<input type="checkbox" name="brennstoffe[Erdgas]" value="Erdgas"> Erdgas
<input type="checkbox" name="brennstoffe[Heizöl]" value="Heizöl"> Heizöl