Mailinglisten-Archive |
ich habe ein Formular mit mehreren checkboxen. ...
Daher habe ich allen den gleichen Namen (z.B.
$checkbox und verschiedene Values gegeben. ...
Ich bekomme leider immer
nur den Wert der letzten Checkbox zurück.
Ich habe das so geloest:
Es gibt diese Funktion, die einen String zurückliefert, in dem alle Werte
durch Komma getrennt enthalten sind.
function decode_multiple($name)
{
$alles = " ".getenv(QUERY_STRING); $werte = "";
while($pos1 = strpos($alles, $name."="))
{
$alles = substr($alles, $pos1+strlen($name)+1,
strlen($alles)-$pos1+1);
if (strlen($alles))
{
$pos1 = strpos($alles, "&");
if (strlen($pos1)) $werte .= substr($alles, 0, $pos1).",";
else $werte .= $alles.","; }
}
if ($werte) if ($werte[strlen($werte)-1] == ",") $werte =
substr($werte, 0, strlen($werte)-1);
return $werte;
}
Dann gibt es diese Funktion, die einen bestimmten Wert
aus diesem String auslesen kann
function get_csv_field($csv, $fnr, $tz)
{
$cnt = 1;
$temp = $csv.$tz;
while ($cnt <= $fnr) {
$offs = strpos($temp, $tz);
$retv = substr($temp, 0, $offs);
$temp = substr($temp, $offs+1);
$cnt++;
}
return $retv;
}
Der Aufruf wäre dann wie folgt:
$tmp = decode_multiple("checkbox");
$i = 1;
while ($val = get_csv_field($tmp, $i, ','))
{
! dein code !
$i++;
}
ff Klaus
php::bar PHP Wiki - Listenarchive