 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
09.01.2004, 13:55
|
#1
|
|
TP-Member
Registriert seit: Jan 2002
|
Mehrere Datensätze nach Auswahl löschen?
Hallo,
ich hätte gerne, dass meine User aus einer Liste von Datensätzen per Checkbox mehrere markieren und dann löschen können.
Die Ausgabe der Liste mit den Checkboxen ist gar kein Thema, aber irgendwie fehlt mir gerade der Weg, wie ich der Datenbank sage, welche Datensätze gelöscht werden sollen.
Meine Checkbox sieht so aus:
<input type=\"checkbox\" name=\"delid[$x]\" value=\"$id\">
Was auch nicht funktioniert ist die Übergabe des Array $delid an die nächste Seite next.php, obwohl ich es mit serialize und unserialize umgewandelt habe.
Ich weiss nicht, wie ich mir merke, welche Checkbos ist "checked" und welche ID des Datensatzes hatte sie.
Wahrscheinlich ist das alles ziemlich einfach, nur komme ich nicht darauf.
Hat jemand eine Idee?
Vielen Dank!!!!
Scooter
|
|
|
09.01.2004, 14:15
|
#2
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
serialize und deserialize brauchst du hierbei nicht.
Die abgehakten Checkboxen findest du im Array $_POST['delid'] wieder:
PHP-Code:
print_r($_POST['delid']);
Gruss
Jan
|
|
|
09.01.2004, 15:35
|
#3
|
|
TP-Insider
Registriert seit: Dec 2003
Ort: nienburg (raum hannover)
|
wenn du ne checkbox hast (zB name="delete_id") dann wird dessen value (zB value="13") eubergeben. das kannst du dann einfach per $_POST['delete_id'] auslesen und weiterverarbeiten.
was zum delete
http://tut.php-q.net/mysql-delete.html
__________________
in eile kam er,
in schwarzem gewand,
aus den tiefen des waldes,
ein einsamer mann, ein geschoepf der freiheit,
ein geschoepf ohne furcht,
doch alle nannten sie ihn nur T O D
|
|
|
10.01.2004, 18:06
|
#4
|
|
TP-Member
Registriert seit: Jan 2002
|
Hi,
das mit dem $_POST['delid'] funktioniert prima.
Danke!
Allerdings habe ich jetzt noch eine zusätzliche Abfrage eingebaut, ob wirklich alles gelöscht werden soll.
Wie gebe ich die mein Array $delid nun nocheinmal weiter?
Danke!
Scooter
|
|
|
10.01.2004, 18:39
|
#5
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
wie kommst du denn zu der abfrage? per post mit einem weiteren form? dann leg das array in ein hidden-feld und gib es beim submit des formulars mit.
gruss
hardy
|
|
|
10.01.2004, 19:08
|
#6
|
|
TP-Member
Registriert seit: Jan 2002
|
Ja, mit einem weiteren <form>.
Habe schon ein Feld eingebaut, aber da stimmt bestimmt was nicht...
<input type=\"hidden\" name=\"delid\" value=\"$delid\">
Müssen da noch []-Klammern hin beim value?
Danke!
Gruß
Scooter
|
|
|
10.01.2004, 19:11
|
#7
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
value=\"$_POST[delid]\"
|
|
|
10.01.2004, 19:20
|
#8
|
|
TP-Member
Registriert seit: Jan 2002
|
Ok, schonmal keine Fehlermeldung.
Aber wie greife ich dann auf das Array zu?
$_POST['delid'] geht dann nicht mehr, und $delid[1.....10] geht auch nicht.
|
|
|
10.01.2004, 19:29
|
#9
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
als for-schleife
PHP-Code:
// anzahl der elemente im array
$count = count($_POST[delid]);
$delid = $_POST[delid];
for($i = 0; $i < $count; $i++) {
print $delid[$i];
}
oder einfacher
PHP-Code:
foreach($_POST[delid] as $loeschen) {
print $loeschen."<br>";
}
einer dieser moeglichkeiten musst du dann einfach nur noch anpassen.
|
|
|
10.01.2004, 19:39
|
#10
|
|
TP-Member
Registriert seit: Jan 2002
|
Habe ich versucht.
Fehlermeldung bei foreach():
Warning: Invalid argument supplied for foreach() in ....
Wenn ich es per for_schleife mache, gibt er mir einzeln "ARRAY" aus.
|
|
|
10.01.2004, 22:45
|
#11
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
jo, jo, jo man,
ist ja auch klar!
deine checkboxen haben eine laufende nummer. und dein array besteht aus lauter einzelnen arrays, in denen die werte liegen. also jeder wert in einem eigenen array (jan und mike moegen mir vergeben, falls ich was dummes gesagt habe  ).
damit dein script funzen soll, dann lass die variable $x in der checkbox-zeile raus.
PHP-Code:
<input type="checkbox\" name=\"delid[]\" value=\"$id\">
alles klar?!
oder probiere es so (was echt umstaendlich waere):
PHP-Code:
foreach($_POST[delid] as $loeschen) {
print $loeschen[0]."<br>";
}
hardy
|
|
|
10.01.2004, 23:38
|
#12
|
|
TP-Member
Registriert seit: Jan 2002
|
Ich habe das $x jetzt weg gelassen, aber die Fehlermeldung ist immer noch die selbe....
|
|
|
11.01.2004, 13:12
|
#13
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
mmmhh... also Theos Theorie ist schon richtig... nur die Umsetzung passt nicht ganz (zumindest eine Lösung von mehreren). Man kann kein Array in einem einzelnen hidden-Feld übergeben.
Du musst für jedes Element im Array ein eigenes Hidden-Field machen.
PHP-Code:
foreach($_POST['delid'] AS $k => $v) {
echo '<input type="hidden" name="delid['.$k.']" value="'.$v.'">';
}
Gruss
Jan
|
|
|
11.01.2004, 13:44
|
#14
|
|
TP-Member
Registriert seit: Jan 2002
|
Genau das wars!
Vielen Dank!!!
Jetzt funktioniert alles!
Gruß
Scooter
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 05:55 Uhr.
|
 |