Du mußt
<input type='checkbox' name='id[$id]' />
jeweils für jeden $id-Wert deiner Datensätze ausgeben. Im HTML Text steht dann z.B.
<input type='checkbox' name='id[23]' />
<input type='checkbox' name='id[74]' />
<input type='checkbox' name='id[12]' />
Schau dir mal den HTML Quelltext an, den Du beim Abrufen der Seite bekommst und prüfe, ob das so auch erzeugt wird. Natürlich müssen die Tags noch innerhalb der Form stehen. Wenn das alles nix hilft, laß die die Variable $_POST ausgeben. Dazu hier eine einfach Funktion, die zum Debuggen recht nützlich sein kann:
function Display(&$var)
{
if (is_array($var))
{
$count = 0;
echo "{";
foreach($var as $key => $value)
{
if (0 < $count)
echo ", $key=>";
else
echo "$key=>";
Display($value);
++$count;
}
echo "}";
}
else if (is_integer($var))
{
echo $var;
}
else if (is_bool($var))
{
echo $var ? "true" : "false";
}
else if (null == $var)
{
echo "null";
}
else if (is_string($var))
{
echo "'$var'";
}
else if (is_object($var))
{
echo "{class=", get_class($var);
$properties = get_object_vars($var);
Display($properties);
echo "}";
}
else
{
echo $var;
}
}
Schreib dann einfach mal am Anfang
Display($_POST);
Dann sieht Du in der Ausgabe, was du an Formularwerten bekommen hast.
Versuche es mal mit dem folgenden Script unter dem Namen test.php:
<?php
funktion Display
.....
if ("POST" == $_SERVER["REQUEST_METHOD"])
{
Display($_POST);
$keys = array_keys($_POST["id"]);
Display($keys);
}
else
{
?>
<html>
<body>
<form action="test.php" method="POST">
<input type='checkbox' name='id[23]' />
<input type='checkbox' name='id[74]' />
<input type='checkbox' name='id[12]' />
<input type='submit' value='submit'/>
</form>
</body>
</html>
<?php
}
?>
Wenn Du die letzten beiden Checkboxen auswählst und das Fomular abschickst, solltest Du folgende Ausgabe erhalten:
{id=>{74=>'on', 12=>'on'}}{0=>74, 1=>12}
Natürlich mußt Du noch die Funktion Display an den Anfang des Scripts kopieren, wie angedeutet.
MfG
GK