wuscheck: Auswertung von arrays

Hallo,

ich habe eine Matrix erstellt, mit der ich Zugriffsrechte für ein Proggi verwalten möchte. Per submit können alle Berechtigungen auf einmal geändert werden. Die übergebenen IDs werden richtig an das 2. Script übergeben, über das u.a. das Update der DB läuft. Lediglich die Verarbeitung der Checkboxen macht Probleme...

Wenn ich für Person 2 eine Änderung vornehme, dann werdne zwar ID und Person richtig übergeben, die Werte der Checkboxen aber immer für die Person1 geändert, anstatt für Person2. Ich habe irgendeine Kleinigkeit übersehen...

1. Script --> Matrix:

ID1 Person1 CheckboxA1  CheckboxA2 CheckboxA3
ID2 Person2 CheckboxB1  CheckboxB2 CheckboxB3

2. Scipt --> Update:
Hier kommt das folgende an:
ID1 Person1 on on
ID2 Person2

Hier noch einmal der Teil des Codes aus Script 1 und 2:

Script1:
//Userid wird an Scipt2 übergeben
...<input type="hidden" name="userid[]" value="<?php echo $userid; ?>">
...
//Die Schleifen werden durchlaufen, da das Feld Level die Berechtigungen Kommasepariert speichert (also z.B. 10,20)
<td align="center"><?php echo "<input type='checkbox' name='news[]' value='10' "; for ($a=0;$a<$anz;$a++) {if ($level[$a]=="10"){echo "CHECKED";}} echo ">"; ?></td>
<td align="center"><?php echo "<input type='checkbox' name='termine[]' value='20' "; for ($a=0;$a<$anz;$a++) {if ($level[$a]=="20"){echo "CHECKED";}} echo ">"; ?></td>
...

Script2:
...for ($i=0;$i<$anzahl;$i++){
//Anzeige zur Überprüfung der Eingabe
echo "ID: $userid[$i] - $news[$i] - $termine[$i]<br>";
...
UPDATE DB
...
}

Ausgegeben wird das folgende:
ID1 Person1 on on
ID2 Person2

anstatt

ID1 Person1
ID2 Person2 on on

Any ideas?

Gruss

wuscheck

  1. Hallo,

    ich muss etwas raten, aber ich glaube, dein Problem hatte ich auch schon.

    Checkboxen, die den Namen eines Arrays haben (news[]), werden lückenlos in das Array gefüllt. Soll heißen: Wenn die 10. Checkbox die erste ist, die angeklickt wurde, steht der Wert _nicht_ in news[9], sondern in news[0].

    Du kannst die Rückgabe in news[9] erzwingen, indem du das Feld auch so nennst, also
    <input type='checkbox' name='news[9]' value='10' ...

    statt
    <input type='checkbox' name='news[]' value='10' ...

    Lieben Gruß, Kalle