caro84: confirm()

Habe eine Datei namens delete.php mit folgendem Inhalt:

<script type="text/javascript">
Check = confirm("Wollen Sie den Eintrag löschen?");
if (Check == false) {
 history.back()
}
else {
 <?
 $loeschen = "DELETE FROM ops_release WHERE id = '$id'";
 $loesch = mysql_query($loeschen);
 ?>
}
</script>

Diese wird aufgerufen, wenn man neben einem DB Eintrag auf löschen klickt. Der Datensatz soll allerdings nur gelöscht werden, wenn man auf OK klickt. Das mit dem History.Back klappt auch wunderbar, aber der Datensatz wird ebenfalls gelöscht, wenn man auf Abbrechen klickt. Wieso? Wo ist mein Fehler?

  1. Hi,

    <script type="text/javascript">
    Check = confirm("Wollen Sie den Eintrag löschen?");
    if (Check == false) {
    history.back()
    }
    else {
    <?
    $loeschen = "DELETE FROM ops_release WHERE id = '$id'";
    $loesch = mysql_query($loeschen);
    ?>
    }
    </script>

    Informiere Dich über die Grundlagen von Client-Server-Anwendungen.

    Dein PHP-Script erzeugt HTML inkl. Javascript. Das Javascript wird erst ausgeführt lange nachdem Dein PHP-Script beendet ist.
    Dein PHP-Script kann also prinzipbedingt nicht auf die User-Antwort auf das Javascript-confirm reagieren, da es vorher bereits beendet ist.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Kann ich sowas wie history.back() auch nutzen um direkt auf eine andere Seite weiterzuleiten (ohne refresh="1" und so)?
      Also dass er bei else {} eben einfach eine andere Seite aufruft..

      1. Also dass er bei else {} eben einfach eine andere Seite aufruft..

        location.href="neueSeite.htm";

        1. Hello,

          location.href="neueSeite.htm";

          au Wahnsinn, also von der Seite weggeleitet und trotzdem der Datensatz gelöscht.
          NOCHMAL: PHP läuft erst, was hinten rauspurzelt kommt beim Browser an. Wenn der Browser das JavaScript in die Finger bekommt ist das PHP-Skript mit seiner Löschung schon fertig.
          ENTWEDER
          Du platzierst das confirm auf dem Löschen-Button, so dass das Skript überhaupt nicht erst ausgeführt wird
          ODER
          Du musst serverseitig auf gesetzte Parameter reagieren um zwischen Löschung und Nicht-Löschung zu unterscheiden.

          Und das ENTWEDER-ODER ist dabei nicht ganz trennscharf, es darf gerne auch beides sein.

          MfG
          Rouven

          --
          -------------------
          sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
          We found ourselves looking upon a familiar sight. We were home. How do you pick up the threads of an old life? How do you go on... when in your heart you begin to understand... there is no going back? There are somethings that time cannot mend... some hurts that go too deep... that have taken hold.  --  The Lord of the Rings: The Return of the King (Peter Jackson)
          1. Hi,

            au Wahnsinn, also von der Seite weggeleitet und trotzdem der Datensatz gelöscht.

            Nu lass' den Kinderchen doch den Spass am selber herausfinden :-)

            MfG ChrisB

            --
            „This is the author's opinion, not necessarily that of Starbucks.“
          2. .. sicher dass es der OP noch ums Löschen ging?
            Aus der neuen Fragestellung ergibt sich das eigentlich nicht.

            1. Hi,

              .. sicher dass es der OP noch ums Löschen ging?
              Aus der neuen Fragestellung ergibt sich das eigentlich nicht.

              ich weiß nicht, was an "Der Datensatz soll allerdings nur gelöscht werden, wenn man auf OK klickt." so unklar sein sollte. Darüber hinaus wäre dieser fatale Irrtum des OP *unbedingt* aufklärungsbedürftig, auch wenn dessen Frage in eine komplett andere Richtung gegangen wäre.

              Cheatah

              --
              X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
              X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
              X-Will-Answer-Email: No
              X-Please-Search-Archive-First: Absolutely Yes