Checkboxauswahl in DB speichern

smyle

Erfahrenes Mitglied
Hallo
Fange direkt mit meiner Frage an.

Ich habe mehrere Checkboxen die automatisch generiert werden (der Besucher der Homepage merkt nichts davon).
Nun kann der Besucher der Homepage die mehrere Checkboxen auswählen. Und in einer DB abspeichern lassen.

Mein Problem ist.
wenn ich die ausgewählten Checkboxen in der DB abspeichern lasse, wird immer nur eine Checkbox übernommen. Die anderen werden ignoriert / gar nicht angezeigt.

Hier der Code

(index.php)
PHP:
while(...)
{
  $checkbox = "Note$count$anz";
HTML:
	   <td><input type="checkbox" name="<?PHP echo $checkbox;?>" value="6"/></td>
	   <td><input type="checkbox" name="<?PHP echo $checkbox;?>" value="5.5"/></td>
	   <td><input type="checkbox" name="<?PHP echo $checkbox;?>" value="5"/></td>
	   <td><input type="checkbox" name="<?PHP echo $checkbox;?>" value="4.5"/></td>
	   <td><input type="checkbox" name="<?PHP echo $checkbox;?>" value="4"/></td>
	   <td><input type="checkbox" name="<?PHP echo $checkbox;?>" value="3"/></td>
PHP:
}

(speichern.php)
PHP:
	   echo "Note$count$anz Note:";
	   $note = $_POST["Note$count$anz"];						//In array Speichern
	   print_r("$note<br>");									//Wird nicht angezeigt
		
			$insert = "INSERT INTO `bericht_noten` 
						(`berichthaupthema_ID`, `berichtunterthema_ID`, `value`, `Note`, `bericht_ID`) 
					   VALUES 
						('".$haupttitelid."', '".$idunterthema."', '".$note."', 'Ja', '".$lastinsertid."')";

Was kann ich machen damit alle ausgewählten Checkboxen in meiner DB im folgenden Format speichern kann:
auswahl1|auswahl2 usw. (Die Auswahl werden mit einem "|" getrennt.)

Kann mir da jemand weiterhelfen?

Grüsse
Smyle :D
 
Ich habe dies nun gemacht:

(index.php)
PHP:
while(...)
{
  $checkbox = "Note$count$anz";
HTML:
	   <td><input type="checkbox" name="<?PHP echo "$checkbox[]";?>" value="6"/></td> <!--Zeile 69-->
	   <td><input type="checkbox" name="<?PHP echo "$checkbox[]";?>" value="5.5"/></td>
	   <td><input type="checkbox" name="<?PHP echo "$checkbox[]";?>" value="5"/></td>
	   <td><input type="checkbox" name="<?PHP echo "$checkbox[]";?>" value="4.5"/></td>
	   <td><input type="checkbox" name="<?PHP echo "$checkbox[]";?>" value="4"/></td>
	   <td><input type="checkbox" name="<?PHP echo "$checkbox[]";?>" value="3"/></td>
PHP:
}

(speichern.php)
PHP:
	   $checkbox =  "Note$count$anz";  

	   echo "Note$count$anz Note:";
	   $note = $_POST["$checkbox"][];						//In array Speichern
	   $note = implode("|",$note);
	   print_r("$note<br>");									//Wird nicht angezeigt
		
			$insert = "INSERT INTO `bericht_noten` 
						(`berichthaupthema_ID`, `berichtunterthema_ID`, `value`, `Note`, `bericht_ID`) 
					   VALUES 
						('".$haupttitelid."', '".$idunterthema."', '".$note."', 'Ja', '".$lastinsertid."')";

Jedoch gibt es mir folgende Fehlermeldung aus:
Parse error: syntax error, unexpected ']', expecting T_STRING or T_VARIABLE or T_NUM_STRING in ...\index.php on line 69
Die Zeile 69 ist diese: "<td><input type="checkbox" name="<?PHP echo "$checkbox[]";?>" value="6"/></td>".

Ich hatte auch dies so veruscht jedoch bekamm ich diese Fehlermeldung: Fatal error: Cannot use [] for reading in ...\index.php on line 69
HTML:
	   <td><input type="checkbox" name="<?PHP echo $checkbox[];?>" value="6"/></td> <!--Zeile 69-->
	   <td><input type="checkbox" name="<?PHP echo $checkbox[];?>" value="5.5"/></td>
	   <td><input type="checkbox" name="<?PHP echo $checkbox[];?>" value="5"/></td>
	   <td><input type="checkbox" name="<?PHP echo $checkbox[];?>" value="4.5"/></td>
	   <td><input type="checkbox" name="<?PHP echo $checkbox[];?>" value="4"/></td>
	   <td><input type="checkbox" name="<?PHP echo $checkbox[];?>" value="3"/></td>

Warum funktioniert dies nicht?
 
Die Checkboxen sollen doch alle den gleichen Namen haben und nicht den Namen von einer Variablen bekommen:

HTML:
<td><input type="checkbox" name="checkbox[]" value="6"/></td>

und nicht

HTML:
<td><input type="checkbox" name="<?PHP echo $checkbox[];?>" value="6"/></td>
 
Die Namen werden automatisch generiert da ich mehrere Felder / Zeile brauche (siehe Anhang/Bild).

Ich muss jede Zeile einzeln in der DB abspeichern. In diesem Beispiele wäre es 5 mal. da ich 5 Zeilen mit Checkboxen habe.
 

Anhänge

  • checkbox.jpg
    checkbox.jpg
    30,7 KB · Aufrufe: 30
Die Klammern sollen auch hinter den Namen und nicht hinter die Variable ;)

HTML:
<td><input type="checkbox" name="<?PHP echo $checkbox.'[]';?>" value="6"/></td>
 
Merci :D

Und indemfall muss ich in der datei speichern.php folgendes "$note = $_POST[$checkbox.'[]'];" anstelle von $note = $_POST["$checkbox"][];.
Ist das Korrekt?
Denn bei $note = $_POST["$checkbox"][]; bekomme ich ein Fehler.




Ich habe mir nun in der Datei speichern.php mit einem echo und einen print_r den inhalt von $note ($note = $_POST[$checkbox.'[]'];) ausgeben lassen. Und dies ist immer leer obwohl ich ein paar checkboxen ausgewählt habe.
 
Zuletzt bearbeitet:
Du musst nur:

PHP:
$note = $_POST["$checkbox"];

schreiben. $note ist dann allerdings auch wieder ein Array welches alle Werte enthält.

Wenn du einen bestimmten Eintrag aus dem POST-Array haben willst, musst du es so schreiben:

PHP:
$note = $_POST["$checkbox"][$nummer];

und für $nummer die entsprechende Zahl eintragen.
 
Hier mal ein Beispiel....

PHP:
<?php 
$checkbox  = 'myCheckbox';
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <input name="<?php echo $checkbox; ?>[]" type="checkbox" value="salami"> Salami<br>
    <input name="<?php echo $checkbox; ?>[]" type="checkbox" value="pilze"> Pilze<br>
    <input name="<?php echo $checkbox; ?>[]" type="checkbox" value="sardellen"> Sardellen
  <input type="submit" value=" Absenden ">
</form>
<hr />
<?php
$note = $_POST[$checkbox];
print_r($note);
?>
 
Variabel durch Linkwahl übergeben

Hallo
Hoffentlich hatte ihr einen guten Mittag :D
Das mit den Checkboxen hat funktioniert. Danke

Ich habe nun eine ganz andere Frage:
Kann ich beim wählen eines Links eine bestimmte Variabel mit dem Inhalt einer anderen überschreiben?

Hier der Code. Ich möchte wenn ich den link "Q$count" wähle, den Inhalt der Variable $idberichte an die Variabel $id übergeben. Ist das mit PHP möglich?

PHP:
		while($row = mysql_fetch_object($anzqualiquery))
		{
		$idberichte = $row->ID;
		$count++;
		echo "<a href='#' id='$idberichte' style='color:#5D0000;'>Q$count</a> | ";
		}
 
Zurück