Checkboxen...

SonMiko

Erfahrenes Mitglied
Hi,
ich habe eine simple Datenbankabfrage gemacht die mir sämtliche User liefert.
In einer Tabelle angeordnet, Zeile für Zeile. In eine Spalte habe ich jeweils eine
Checkbox mit ausgeben lassen. Bei Value habe ich die ID des Datensatzes angegeben um eine Relation herzustellen... Dummerweise heissen immer alle Checkboxen gleich.
Nun habe ich erfahren das man in HTML ein Array erstellen kann (checobox[]).
Trotzdem verstehe ich nun nicht wie ich da die einzelnen Feldwerte auslesen kann
Vorallem, sind diese Werte NUR gesetzt wenn sie selektiert worden sind

Kann mir jemand einen Codeschnipsel als Denkanstoß geben?

Ich war nicht faul, meiner sieht so aus:

PHP:
.....<td><input name=selektion[$i] type=checkbox value=$row[ID]></td></tr>"; //unvollstaendig nur zum schauen...

//dann...

$anzselektionen=count($_POST['selektion']);
for($j=0,$j<$anzselektionen,j++){
echo $_POST['selektion[$j]'];
}

Komme nicht weit.
Mein Ziel ist das ich die ausgewählten Datensätze Löschen kann
Beschränkt Euch nicht auf die Funktion löschen, wichtig ist das ich sie unterscheiden kann und mit dem Value eine Relation habe...


Gruß,

Mike
 
<input type="checkbox" name="<?=$row[ID]?>" />

Damit kannst du doch jeden Record einzeln ansprechen. Der Name ist einzigartig. Dann gehst du einfach die einzelnen Checkboxen durch und schaust ob sie angeklickt wurden.
 
Aber da kann ich doch schlecht mit For Schleifen arbeiten
Wie kann ich rausfinden was gesetzt ist und was nicht?
Dann müsste ich mit dem Inhalt (count($row)) arbeiten oder?
Wird dann aber krass wenn ich 12000 Datensätze habe und
mit $i auf $row hochzähle. Zudem habe ich einen Zeitverlust,
denn die ID wird immer weiterhochgezählt,
bei mir beispielsweise fangen aufgrund von Debugarbeiten,
die Datensätze alle erst ab 120 an.
Dann habe ich in der For Schleife 119 verschenkt.

Oder liegt ein Denkfehler vor
 
Man :-(...
Ich will gerne die Methode mit den HTML Arrays durchführen.
Hat denn niemand ne Ahnung wie man die ausliest?
 
deine html muss denke ich so aussehen:
HTML:
<input name="selektion[]" type="checkbox" value="<?=$row['ID']?>" />
in einer while-schleife generiert dir das dann bei mehreren datensätzen irgendwie sowas:
HTML:
<input name="selektion[]" type="checkbox" value="2" />
<input name="selektion[]" type="checkbox" value="7" />
<input name="selektion[]" type="checkbox" value="5" />
... was du dann folgendermaßen z.b. in php verarbeiten können müsstest...
PHP:
$selectedIds = $_POST['selektion'];
foreach ($selectedIds as $id) {
	echo $id.' wurde ausgewählt! <br />';
}

und ich wette du hörst es nicht unbedingt gerne, aber Werte von html-attributen gehören unbedingt in Anführungsstriche!! (also z.B. type="checkbox"). ohne ausnahme!
Wenn du im PHP arbeitest und html-code in einer variable hast, kannst du das z.B. so machen:
PHP:
// innere " mit einem vorangestellten backslash \ escapen:
$html = "<input type=\"checkbox\" value=\"$id\" />";

// ... oder noch besser (bzw. meine Lieblingsmethode): einfache ' für die variable verwenden. (hat sogar auch noch nen kleinen speed-vorteil)
$html = '<input type="checkbox" value="'.$id.'" />';
 
Zurück