 |
| 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 |
24.05.2005, 13:10
|
#1
|
|
TP-Junior
Registriert seit: Aug 2004
|
Inhalt einer Zeile in einer HTML-Tabelle löschen?
Hallo miteinander!
Ich bin sicher, Ihr könnt mir wieder mal helfen.
Ich habe einen Shop erstellt und beim Warenkorb ein kleines Problem: die Artikel werden auf einer vorhergehenden Seite ausgesucht und per Session auf diese Seite (Warenkorb.php) übertragen. Hier klappt bisher alles, die Artikel werden korrekt dargestellt, so weit ist alles okay.
Jetzt möchte ich die Möglichkeit einbauen, einzelne Artikel wieder zu löschen, also einzelne Zeilen aus der HTML-Tabelle komplett zu leeren. Dafür habe ich ein Formular mit einem Löschen-Button eingebaut. Jetzt habe ich eine völlige Leere im Gehirn und weiß nicht weiter, wie muss ich die Löschen-Funktion jetzt programmieren?
Hier das Skript mit dem Löschen-Button:
<?php
session_start();
$Menge = explode("#", $_SESSION['Menge']);
$ArtikelNr = explode("#", $_SESSION['ArtikelNr']);
$Artikel = explode("#", $_SESSION['Artikel']);
$Preis1 = explode("#", $_SESSION['Preis1']);
$max = count($Artikel);
$n = 1;
$Summe = 0;
while ($n < $max) {
$Gesamt = $Menge[$n] * $Preis1[$n];
echo "<tr><form action='Warenkorb.php' method='post'>";
echo "<td>", $Menge[$n], "</td>";
echo "<td>", $ArtikelNr[$n], "</td>";
echo "<td>", $Artikel[$n], "</td>";
echo "<td>", $Preis1[$n], "</td>";
echo "<td>", number_format($Gesamt, 2, ",", "."), "</td>";
echo "<td><input name='submit' type='reset' value='Posten löschen'></td>";
echo "</form></tr>";
$Summe = $Summe + $Gesamt;
$n++;
}
echo "<tr>";
echo "<td> </td>";
echo "<td> </td>";
echo "<td> Summe (inkl. MwSt) </td>";
echo "<td>", number_format($Summe, 2, ",", "."), "</td>";
echo "<td> </td>";
echo "<td> </td>";
echo "</tr>";
?>
Ist wahrscheinlich wieder nur eine Kleinigkeit, aber wie gesagt, mein Gehirn ist leer... Ich hoffe, Ihr könnt mir helfen.
Danke und Gruß
Kero14
|
|
|
24.05.2005, 13:43
|
#2
|
|
TP-Specialist
Registriert seit: Oct 2002
Ort: Übach-Palenberg
|
Du musst die aktuelle Zeile via Hiddenfield oder so mit übergeben und diese dann halt löschen aus den Arrays...
if (isset($_POST['reset'])) {
//Zeile in allen Arrays löschen mit dem übergebenen $n
}
__________________
Grüße aus Übach-Palenberg
Tim
WEB.ASSISTANTS IT-SOLUTIONS
www.web-assistants.de
Hängt das doch mal an eine beliebige PHP-Datei: ?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
|
|
|
26.05.2005, 22:51
|
#3
|
|
TP-Junior
Registriert seit: Aug 2004
|
Hallo nochmal,
ich stehe immer noch auf der Leitung...
Habe jetzt noch ein "unset" mit eingebaut, jetzt werden aber immer ALLE Zeilen gelöscht, nicht nur die eine gewünschte.
Hier nochmal mein Skript, wie es jetzt aussieht:
<?php
session_start();
$Menge = explode("#", $_SESSION['Menge']);
$ArtikelNr = explode("#", $_SESSION['ArtikelNr']);
$Artikel = explode("#", $_SESSION['Artikel']);
$Preis1 = explode("#", $_SESSION['Preis1']);
$max = count($Artikel);
$n = 1;
$Summe = 0;
while ($n < $max) {
$Gesamt = $Menge[$n] * $Preis1[$n];
if (isset($_POST['submit'])) {
unset ($Menge[$n],$ArtikelNr[$n],$Artikel[$n],$Preis1[$n]);
}
echo "<tr><form action='step05.php' method='post'>";
echo "<td>", $Menge[$n],"</td>";
echo "<td>", $ArtikelNr[$n], "</td>";
echo "<td>", $Artikel[$n], "</td>";
echo "<td>", $Preis1[$n], "</td>";
echo "<td>", number_format($Gesamt, 2, ",", "."), "</td>";
echo "<td><input name='submit' type='submit' value='Posten löschen'></td>";
echo "</form></tr>";
$Summe = $Summe + $Gesamt;
$n++;
}
echo "<tr>";
echo "<td> </td>";
echo "<td> </td>";
echo "<td> Summe (inkl. MwSt) </td>";
echo "<td>", number_format($Summe, 2, ",", "."), "</td>";
echo "<td> </td>";
echo "<td> </td>";
echo "</tr>";
?>
Muss die if...unset-Schleife woanders hin? Habe schon einiges ausprobiert, aber nur an dieser Stelle bekomme ich überhaupt eine Reaktion.
Hilfe!!!
|
|
|
26.05.2005, 23:21
|
#4
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Achtung - Du baust bei jedem Artikel den selben submitbutton.
Definier ihn so:
echo "<td><input name='submit".$n."' type='submit' value='Posten löschen'></td>";
Dann kannst Du in der Schleife abfragen
if (isset($_POST['submit'.$n])) {
unset ($Menge[$n],$ArtikelNr[$n],$Artikel[$n],$Preis1[$n]);
}
|
|
|
27.05.2005, 08:31
|
#5
|
|
TP-Junior
Registriert seit: Aug 2004
|
Moin miteinander,
vielen Dank, damit bin ich der Lösung einen Schritt näher... glaube ich...
Jetzt passiert aber folgendes: wenn ich z.B. zwei Artikel im Warenkorb habe, also zwei Zeilen in meiner HTML-Tabelle gefüllt habe und eine davon lösche: alles super, Inhalt ist weg!
Lösche ich nun auch noch den zweiten Artikel / die zweite Zeile, verschwindet der auch... aber der erste Artikel kommt zurück!?!
Ich kann also immer nur einen Artikel löschen, lösche ich den nächsten, sind alle anderen wieder da.
Langsam verzweifle ich, das kann doch nicht so schwer sein!
Weiß jemand, wie ich das Problem lösen kann?
Gruß
Kero
|
|
|
27.05.2005, 08:42
|
#6
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
das liegt wohl an folgendem:
Du hast ja kein echtes Array, sondern einen String getrennt mit #
Für die Form explodest Du das in ein Array.
Nach dem Löschvorgang musst Du das Array wieder zu dem String imploden, sonst änderst Du ja nur was an Deinem temporären Array 
|
|
|
27.05.2005, 08:54
|
#7
|
|
TP-Junior
Registriert seit: Aug 2004
|
Ähm, okay... auf was habe ich mich da eingelassen???
Erstmal danke für Deine schnelle Antwort, ich schaue mal weiter und gucke, ob ich was zustande bringe. Und melde mich wahrscheinlich wieder...
Gruß
Kerstin
|
|
|
27.05.2005, 09:06
|
#8
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
einfach am Ende einfügen:
$_SESSION['Menge']=implode("#",$Menge );
usw.
|
|
|
|
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 +1. Es ist jetzt 21:41 Uhr.
|
 |