Dolito: Event-Handler: onClick

Hallo an alle SELFHTML-Fans!

Ich programmiere gerade einen Warenkorb in PHP.
Natürlich soll mann als Kunde auch die Möglichkeit haben, den Warenkorb zu löschen. Was auch kein Problem darstellt wenn die Sache so aussieht:

<?php
if ($action == "clear")
{ session_destroy();
 header("Location: warenkorb.php");
}
?>
<!-- Code -->
<?php
echo("<a href="warenkorb.php?action=clear">l&ouml;schen</a>");
?>

Der Warenkorb (die Session) wird gelöscht und es wird angezeigt:
"Ihr Warenkorb ist leer" (durch anderen Code)

Wenn ich jetzt keinen Hyperlink sondern einen Klickbutton verwende sieht es zunächst so aus als würde der Warenkorb gelöscht:
"Ihr Warenkorb ist leer"
Wenn ich jetzt weiter durch die Seite navigiere und in den Warenkorb zurückkehre, zeigt er mir auf einmal die Artikel an die sich vor dem Löschen darin befunden haben.

echo("<input type="button" value="Warenkorb l&ouml;schen" onClick="self.location.href='warenkorb.php?action=clear'">");

Der String (URL) wird korrekt weitergegeben. Ich kann mir nicht erklären warum es beim Hyperlink funktioniert und beim Klickbutton nicht.

Gibt es da eine besonderheit die Ich nicht kenne???

Es wäre schön wenn jemand eine Antwort darauf hat!

MFG dolito@gmx.net

  1. Hallo,

    echo("<input type="button" value="Warenkorb l&ouml;schen" onClick="self.location.href='warenkorb.php?action=clear'">");

    Hast du es schonmal so versucht:

    <form action="warenkorb.php" method="get">
    <input type="hidden" name="action" value="clear" />
    <input type="submit" value="Warenkorb l&ouml;schen" />
    </form>

    Wenns funktioniert, geht's auch ohne JavaScript, wenn nicht...
    keine Ahnung.

    Gruß
    Alexander Brock

    --

    SelfCode: sh:( fo:) ch:? rl:( br:> n4:? ie:{ mo:} va:) de:> zu:| fl:{ ss:( ls:[ js:(
    http://emmanuel.dammerer.at/selfcode.html
    Deshalb können Pinguine nicht fliegen:
    Was nicht fliegt kann auch nicht abstürzen
    <img src="http://www.againsttcpa.com/images/AgainstTCPA-Log01Small.gif" border="0" alt="">
    http://againsttcpa.com
    1. Gute Idee nur leider nutze ich den submit-button für die Funktion "Aktualisieren" damit man die Artikelanzahl im Warenkorb ändern kann (wird dadurch ''vereinfacht'' :-))

      Aber ich habe die Lösung glaub' ich gerade selbst gefunden!

      Meine Daten werden in sessions gespeichert und per URL weitergegeben
      zumindest bei herkömlichen links passiert das!

      Jedoch wird JavaSript von PHP irgendwie nicht berücksichtigt?!

      Deshalb mach ich es jetzt so:

      echo("<input type="button" value="Warenkorb l&ouml;schen" onClick="self.location.href='warenkorb.php?SESSION_ID=".$SESSION_ID."&action=clear'">");

      Vorher wurde die session nicht mit geschickt und somit wusste er (PHP-Interpreter) auch nicht welche session er beenden sollte!

      Vielen, vielen Dank für deine Antwort!

      MFG dolito@gmx.net