Checkbox auslese

Konstantin Gross

Erfahrenes Mitglied
Hallo,
ich habe in meinem Forumlar für jeden Eintrag eine Checkbox, der Aufbau sieht wie folgt aus:
http://ezshare.de/files-de/97783/formular.jpg.html

Wenn man die Checkboxen anklickt und dann auf abschicken klickt, geschickt folgendes:
PHP:
foreach ($_POST['check'] as $name => $value)
{
   echo $value;
   $abfrage = "UPDATE hbmenge Set status = 'XX' WHERE id= $value ";
   $ergebnis = mysql_query($abfrage) OR die(mysql_error());
}

So das klappt auch wunderbar, er updatet auch alles korrekt. Diese Abfrage befindet sich auf der selben Seite (selbe Datei). Wenn ich aber das Script zuerst starte kommt folgender Fehler, dieser verschwindet erst, sobald ich was angeklickt und abgeschickt habe:
Warning: Invalid argument supplied for foreach() in C:\apachefriends\xampp\htdocs\admin\buchungsap.php on line 45

Und Line 45 ist:
PHP:
foreach ($_POST['check'] as $name => $value)

Gibt es ihrgend eine Möglichkeit das ich diesen Fehler wegkriege?

PS:
Und gibt es ihrgendwie eine Möglichkeit das ich wenn ich auf einen Button klicke er alle Checkboxen markiert?
 
Zuletzt bearbeitet:
Die foreach-Schleife in folgende if-Abfrage stecken:
PHP:
if(isset($_POST['check']) && is_array($_POST['check']))
{
	//foreach(...)
}

Alle Checkboxen per Buttonclick auswählen kann man mit JavaScript.
 
Oliver Gringel hat gesagt.:
[...]Alle Checkboxen per Buttonclick auswählen kann man mit JavaScript.
Das geht auch mit PHP, aber dann würde sich die Seite jedesmal neu laden. Aber die JavaScript Variante ist natürlich feiner! ;-)

redlama
 
Oliver Gringel hat gesagt.:
Die foreach-Schleife in folgende if-Abfrage stecken:
PHP:
if(isset($_POST['check']) && is_array($_POST['check']))
{
	//foreach(...)
}

Alle Checkboxen per Buttonclick auswählen kann man mit JavaScript.

VIELEN DANK es klappt wunderbar :) Ach was mich dran ärgert so einen ähnlichen Code habe ich bissel drüber schon eingebaut ^^ Nur kam ich nicht auf die Idee da nachzusehen. :rolleyes: Noch eine Frage und zwar wenn man auf Abschicken geklickt hat, updatet er im Hintergrund aber er zeigt mir diesen Werte immer noch an und er hat die Checkboxen rausgemacht wenn ich aber die Seite eigenhändig reloade ist alles korrekt entfernt worden. Gibt es da eine Möglichkeit? Header location kann ich schonmal ausschließen da ich echos benutzte. So sieht mein Formular aus:
PHP:
echo "<form name='editieren' method='post' action='buchungsap.php'>";
      echo "<div align='left'>";
      //echo "<p>";
      echo "<DIV>";
      echo "<TABLE borderColor=#000000 cellSpacing=0 cellPadding=0 border=0>";
      echo "<TBODY>";
      echo "<TR>";
      echo "<input type='hidden' name='id' value='$ar[id]'>";
      echo "<TD width='10%'><span style='color:#000000;'><b>Buchen:</b><br></span>";
      echo "<input type='checkbox' name='check[]' value='$ar[id]'</TD>";
      echo "<TD><span style='color:#000000;'><b>Auftragsnr:</b><br></span>";
      echo "<input type='text' name='auftragsnr' value='$ar[auftragsnr]' size='20'></TD>";
      echo "<TD><span style='color:#000000;'><b>Materialnr:</b><br></span>";
      echo "<input type='text' name='materialnr' value='$ar[materialnr]' size='20'></TD>";
      echo "<TD><span style='color:#000000;'><b>Menge:</b><br></span>";
      echo "<input type='text' name='menge' value='$ar[menge]' size='20'></TD>";
      echo "<TD><span style='color:#000000;'><b>Herkunft:</b><br></span>";
      echo "<input type='text' name='herkunft' value='$ar[herkunft]' size='20'></TD>";
      echo "<TD><span style='color:#000000;'><b>Personalnr:</b><br></span>";
      echo "<input type='text' name='persnr' value='$ar[persnr]' size='20'></TD>";
      echo "</TR>";
      echo "</TBODY></TABLE></DIV>";
     }
      echo "<br>";
      echo "<input type='submit' name='Submit' value='Abschicken'>";
      //echo "</p>";
      
      echo "</div>";
      echo "</form>";
      echo '<form name="abbrechen" method="post" action="index.php">';
      echo '<input type="submit" name="Submit" value="Abbrechen u. Zurückkehren">';
      echo '</form>';

      if(isset($_POST['check']) && is_array($_POST['check']))
      {
      foreach ($_POST['check'] as $name => $value)
      {
      echo $value;
      $abfrage = "UPDATE hbmenge Set status = 'XX' WHERE id= $value ";
      $ergebnis = mysql_query($abfrage) OR die(mysql_error());
      }

PS:
Wenn mir noch jemand sage könnte nach welchen Begriffen ich in JavaScript suchen muss, währe das Spitze ;-)
 
Zurück