+ Antworten
Ergebnis 1 bis 8 von 8

Thema: Inhalt einer Zeile in einer HTML-Tabelle löschen?

  1. #1
    TP-Junior Kero14 macht alles soweit korrekt
    Registriert seit
    Aug 2004
    Beiträge
    12

    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&ouml;schen'></td>";
    echo "</form></tr>";

    $Summe = $Summe + $Gesamt;
    $n++;
    }
    echo "<tr>";
    echo "<td>&nbsp;</td>";
    echo "<td>&nbsp;</td>";
    echo "<td> Summe (inkl. MwSt) </td>";
    echo "<td>", number_format($Summe, 2, ",", "."), "</td>";
    echo "<td>&nbsp;</td>";
    echo "<td>&nbsp;</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

  2. #2
    TP-Specialist Master_T2 bringt sich richtig ein Master_T2 bringt sich richtig ein Avatar von Master_T2
    Registriert seit
    Oct 2002
    Ort
    Übach-Palenberg
    Beiträge
    2.272
    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

    http://www.template-shopping.de

  3. #3
    TP-Junior Kero14 macht alles soweit korrekt
    Registriert seit
    Aug 2004
    Beiträge
    12
    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&ouml;schen'></td>";
    echo "</form></tr>";
    $Summe = $Summe + $Gesamt;
    $n++;
    }
    echo "<tr>";
    echo "<td>&nbsp;</td>";
    echo "<td>&nbsp;</td>";
    echo "<td> Summe (inkl. MwSt) </td>";
    echo "<td>", number_format($Summe, 2, ",", "."), "</td>";
    echo "<td>&nbsp;</td>";
    echo "<td>&nbsp;</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!!!

  4. #4
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    Achtung - Du baust bei jedem Artikel den selben submitbutton.

    Definier ihn so:

    echo "<td><input name='submit".$n."' type='submit' value='Posten l&ouml;schen'></td>";

    Dann kannst Du in der Schleife abfragen


    if (isset($_POST['submit'.$n])) {
    unset ($Menge[$n],$ArtikelNr[$n],$Artikel[$n],$Preis1[$n]);
    }


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  5. #5
    TP-Junior Kero14 macht alles soweit korrekt
    Registriert seit
    Aug 2004
    Beiträge
    12
    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

  6. #6
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    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


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  7. #7
    TP-Junior Kero14 macht alles soweit korrekt
    Registriert seit
    Aug 2004
    Beiträge
    12
    Ä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

  8. #8
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    einfach am Ende einfügen:

    $_SESSION['Menge']=implode("#",$Menge );
    usw.


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51