Giovanni Rena: Messagebox erstellen

Hallo,

ich möchte ein PHP-Script starten welches sich dann an einer DB zu schaffen macht... vorher soll der Benutzer aber noch bestätigen, ob er dies auch möchte, sprich es soll ne Meldung kommen: "Sind sie sicher? JA, NEIN"

Ich glaube dass muß man mit JavaScript machen, hab da confirm() (OK, Abbrechen) gefunden. Wollte jetzt wissen ob das ein üblicher und guter Weg für sowas ist?

Gruß Giovanni

  1. hi,

    ich möchte ein PHP-Script starten welches sich dann an einer DB zu schaffen macht... vorher soll der Benutzer aber noch bestätigen, ob er dies auch möchte, sprich es soll ne Meldung kommen: "Sind sie sicher? JA, NEIN"

    Ich glaube dass muß man mit JavaScript machen, hab da confirm() (OK, Abbrechen) gefunden. Wollte jetzt wissen ob das ein üblicher und guter Weg für sowas ist?

    ja - sofern es dir ausreicht, dass es nur mit aktiviertem javascript wie gewünscht funktioniert, natürlich.

    zwei möglichkeiten:

    • php-script per "normalem" link aufrufen, dessen ausführung aber vom ergebnis von confirm abhängig machen:

    <a href="php-script.php" onClick="return confirm('echt jezz, alter?');">ab geht's</a>

    mit JS wird linkausführung vom ergebnis der abfrage abhängig gemacht, ohne JS _in jedem fall_ beim klick auf den link das script aufgerufen.

    • php-script nur per javascript aufrufen, per location.href = ...

    <span onClick="if(confirm('echt jezz, alter?')) location.href = 'php-script.php'">ab geht's</a>

    bei aktiviertem JS - siehe oben.
    ohne aktiviertes JS - es passiert gar nichts.

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. ja - sofern es dir ausreicht, dass es nur mit aktiviertem javascript wie gewünscht funktioniert, natürlich.

      zwei möglichkeiten:

      Danke erstmal für die Antwort! Hab dich aber nicht ganz eindeutig verstanden. Diese beiden Möglichkeiten funktionieren nur mit aktiviertem JS richtig, oder? Wenn dass der Fall ist, gibt es eine JavaScript unabhängige Lösung?

      • php-script per "normalem" link aufrufen, dessen ausführung aber vom ergebnis von confirm abhängig machen:

      <a href="php-script.php" onClick="return confirm('echt jezz, alter?');">ab geht's</a>

      mit JS wird linkausführung vom ergebnis der abfrage abhängig gemacht, ohne JS _in jedem fall_ beim klick auf den link das script aufgerufen.

      Der Link wird bei deaktiviertem JS aufjeden fall gestartet, richtig?

      • php-script nur per javascript aufrufen, per location.href = ...

      <span onClick="if(confirm('echt jezz, alter?')) location.href = 'php-script.php'">ab geht's</a>

      Der Link wird bei deaktiviertem JS NICHT gestartet, richtig?

      Thanx

      1. hi,

        Hab dich aber nicht ganz eindeutig verstanden. Diese beiden Möglichkeiten funktionieren nur mit aktiviertem JS richtig, oder?

        ja, das haben javascript-lösungen so an sich.

        Wenn dass der Fall ist, gibt es eine JavaScript unabhängige Lösung?

        bitte wählen:
        <a href="loeschen.php">ich möchte löschen</a>
        <a href="http://www.google.com/">ich möchte nicht löschen</a>

        Der Link wird bei deaktiviertem JS aufjeden fall gestartet, richtig?

        brillinat erkannt.

        Der Link wird bei deaktiviertem JS NICHT gestartet, richtig?

        brillinat erkannt.

        als alternative dazu siehe vielleicht Tobias' vorschlag.

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
        1. @Tobias Kloth + wahsaga
          Alles klar, habs grad ausprobiert und funktioniert gut! Danke für die Lösung

  2. Hallo Giovanni,

    ich möchte ein PHP-Script starten welches sich dann an einer DB zu schaffen macht... vorher soll der Benutzer aber noch bestätigen, ob er dies auch möchte, sprich es soll ne Meldung kommen: "Sind sie sicher? JA, NEIN"

    ich mach das immer mit dem Link:

    <a href="datei.php?aktion=loeschen&amp;id=123" onclick="return wl(this);">[löschen]</a>

    und dem der js-Funktion:

    function wirklich(a,art){  
        meldung = 'Soll der Datensatz wirklich gelöscht werden?';  
        var w = window.confirm(meldung);  
        if(w){  
            a.href = a.href + '&sicher=1';  
            return true;  
        }  
        else{  
            return false;  
        }  
    }
    

    die JS-Funktion gibt anhand des Rückgabewertes von confirm true oder false zurück und hängt bei true an die URL des Linkes ein "&sicher=1" dran - das php-Script überprüft dann ob $_GET['sicher'] gesetzt ist, und wenn ja wird der Datensatz gelöscht, wenn der Wert nicht gesetzt ist, fragt php erst nochmal nach ob der Datensatz wirklich gelöscht werden soll.

    Grüße aus Nürnberg
    Tobias

    1. <a href="datei.php?aktion=loeschen&amp;id=123" onclick="return wl(this);">[löschen]</a>

      und dem der js-Funktion:

      function wirklich(a,art){

      }

        
      Und DAS funktioniert?  
        
      Ich finde confirm() in den meisten Fällen aus UI-Sicht ungeeignet.  Zum einen im aktuellen IE-6-Service-Pack wegen der Eingabeaufforderung für das Zulassen aktiver Inhalte, zum anderen, weil "OK" und "Abbrechen" als Auswahl bestimmte redaktionelle Anforderungen an den Dialog stellen.
      
      1. Hallo sschumann,

        function wirklich(a,art){

        }

        upps, ich sehe gerade, dass hier der zweite Parameter noch zuviel ist ...  
          
        
        > Ich finde confirm() in den meisten Fällen aus UI-Sicht ungeeignet.  Zum einen im aktuellen IE-6-Service-Pack wegen der Eingabeaufforderung für das Zulassen aktiver Inhalte,  
        
        ist das mein Problem wenn der IE jedesmal nachfragt, ob der js ausführen soll? Wenn der User es unbedingt so haben will ...  
        Wegen mir kann er ja so eingestellt sein, dass js überhaupt nicht ausgeführt wird - funktionieren wird es trotzdem - außerdem wird man solche Abfragen wohl kaum im öffentlichen Internet brauchen, sondern eher in Administrationsbereichen bei denen nur eine eingeschränkter Benutzerkreis Zugang hat (so ist es zumindest bei mir).  
          
        
        > zum anderen, weil "OK" und "Abbrechen" als Auswahl bestimmte redaktionelle Anforderungen an den Dialog stellen.  
        
        was gibt es denn an der Frage "Soll der Datensatz wirklich gelöscht werden?" misszuverstehen? Aber du hast natürlich recht, man muss schon aufpassen was man da für einen Text reinsetzt.  
          
        Grüße aus Nürnberg  
        Tobias
        
        1. Hi,

          zum anderen, weil "OK" und "Abbrechen" als Auswahl bestimmte redaktionelle Anforderungen an den Dialog stellen.
          was gibt es denn an der Frage "Soll der Datensatz wirklich gelöscht werden?" misszuverstehen? Aber du hast natürlich recht, man muss schon aufpassen was man da für einen Text reinsetzt.

          Paradebeispiel für schlechten Text (schon gesehen):

          Soll der Vorgang abgebrochen werden?
                  [ OK ] [Abbrechen]

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          Schreinerei Waechter
          Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
          1. hi,

            Paradebeispiel für schlechten Text (schon gesehen):

            Soll der Vorgang abgebrochen werden?
                    [ OK ] [Abbrechen]

            wie wertet man das ergebnis einer solchen abfrage scriptseitig dann weiter aus?

            mein vorschlag wäre:

            if(confirmErgebnis || !confirmErgebnis) //abbruch

            gruß,
            wahsaga

            --
            "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
            1. Hi,

              Paradebeispiel für schlechten Text (schon gesehen):
              Soll der Vorgang abgebrochen werden?
                      [ OK ] [Abbrechen]
              wie wertet man das ergebnis einer solchen abfrage scriptseitig dann weiter aus?

              mein vorschlag wäre:
              if(confirmErgebnis || !confirmErgebnis) //abbruch

              Wieso? Bei Ok wird der Abbruch fortgesetzt (also der Vorgang abgebrochen) und bei Abbrechen der Abbruch abgebrochen (also der Vorgang fortgesetzt) ;-)

              cu,
              Andreas

              --
              Warum nennt sich Andreas hier MudGuard?
              Schreinerei Waechter
              Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
          2. Hallo,

            das Beispiel fordert das logische Verständnis des Users schon ganz schön heraus...!

            Soll der Vorgang abgebrochen werden?
                    [ OK ] [Abbrechen]

            In einer uralten Windows-Tabellenkalkulation (ich glaub, das war so'ne Art Excel-Clone unter Win3.1) ist mir damals die Abfrage

            Datensatz nicht löschen?
                [ Ja ]     [Nein]

            begegnet. Da wusste ich zunächst auch nicht, ob der Programmautor die doppelte Verneinung wirklich beherrscht hat. Das hat er in der Tat nicht (oder hier nicht konsequent umgesetzt), aber ich wollte es dann doch erst mit einem Testdatensatz ausprobieren. ;)

            Ciao,

            Martin

        2. function wirklich(a,art){

          }

          
          > upps, ich sehe gerade, dass hier der zweite Parameter noch zuviel ist ...  
            
          Jau, und die Methode mit dem Namen gips auch nücht :)