Adrian: Bestätigung via Abfrage

Hallo,

ich lese aus einer Datenbank Daten aus (*smile*). Die Daten werden tabelarsich aufgelistet. Hinter jeder Zeile ist ein Löschen-Symbol.

Mittels folgendem Source will ich gerne, dass das Löschen vorher noch mal bestätigt werden muss

<script language="javascript">
function delete() {
if (confirm("Sind Sie sicher, dass Sie google.de aufrufen wollen?"))
  go_to_top("http://www.google.de");
  return false;
}
</script>

<a href="http://www.goolge.de" onClick="return delete();; return false;">google.de</a>

Frage: Wie kann ich das lösen, dass im <a href> die go_to_top() steht?

Anmerkung: Ich kann mit JAVA nicht so recht :|

Viele Grüße
Adrian

  1. hi,

    <script language="javascript">

    Das ist ein Fehler  -  zur Info bitte Cheatah fragen :-)

    <a href="http://www.goolge.de" onClick="return delete();; return false;">google.de</a>

    Das ist relativ sinnfrei.

    Frage: Wie kann ich das lösen, dass im <a href> die go_to_top() steht?

    Indem du sie dort hineinschreibst (sofern sie existiert, was in deinem Beispiel nicht der Fall ist)?

    Anmerkung: Ich kann mit JAVA nicht so recht :|

    Ja, na und? Was hat Java mit Javascript zu tun? Richtig: gar nix.

    Grüße aus Berlin

    Christoph S.

    1. Das ist relativ sinnfrei.

      Warum? Sag doch, dass es um eine Datenbanksache geht. Da muss es bisschen umgeschrieben werden ...

      Indem du sie dort hineinschreibst (sofern sie existiert, was in deinem Beispiel nicht der Fall ist)?

      Bitte?!

      Ja, na und? Was hat Java mit Javascript zu tun? Richtig: gar nix.

      Ja ok, JavaScript. Ich weiss, dass es zwei verschiedene Sachen sind. Sorry :)

      1. Hi,

        Das ist relativ sinnfrei.
        Warum?

        wie oft kann man von etwas, in dem man nur ein Mal ist, zurückkehren?

        Indem du sie dort hineinschreibst (sofern sie existiert, was in deinem Beispiel nicht der Fall ist)?
        Bitte?!

        Danke. Mich würde übrigens ganz nebenbei interessieren, was Du eigentlich _erreichen_ willst. Das "da rein bringen" kriegst Du hin, indem Du es hineinschreibst. Dein Problem ist damit aber vermutlich nicht gelöst, was daran liegen könnte, dass Du Dein Problem noch überhaupt nicht beschrieben hast.

        Ja ok, JavaScript. Ich weiss, dass es zwei verschiedene Sachen sind. Sorry :)

        Übrigens ist das type-Attribut im <script>-Tag *zwingend* notwendig.

        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
        1. Ok, ich beschreibe es mal. Bin davon ausgegangen, dass es unrelevant ist. Google habe ich nur als beispiel eingesetzt.

          Ich lese also aus einer Datenbank aus. Die Daten werden tabelarisch gelistet. Hinter jeder Zeile ist ein Lösch-Symbol. Wenn der User was löschen will, will ich das er das nochmal bestätigt. Diese Bestätigung wollte ich mit dem Source erreichen. Darum auch, ob ich diesen Teil (go_to_top()) irgendwie im <a href> einbringen kann. Weil die Daten ja tabelarisch gelistet werden.

          <script language="javascript">
          function delete() {
          if (confirm("Sind Sie sicher, dass Sie google.de aufrufen wollen?"))
            go_to_top("http://www.google.de");
            return false;
          }
          </script>

          <? [..] while($result = mysql_fetch_array($query)) { [..] ?>
          <a href="?action=commentcontrol&id=<? echo $result['id']; ?>" onClick="return delete();; return false;">L&ouml;schen</a>
          <? } ?>

          Mein Ziel ist es, dass jeder Löschversuch nochmal sicherheitshalber bestätigt werden muss. Wenn der User nun in der Meldung auf >OK< klickt, dann soll die Action (?action=commentcontrol&id=<? echo $result['id']; ?>) wirklich aufgerufen werden. Wenn er auf >Abbrechen< klickt, dann soll nichts passieren. Dachte, dass ich das mit dem Script erreiche. Mein Problem ist, die Location, die aufgerufen werden soll bei >OK<.

          Jetzt Verständlicher?

          1. hallo Adrian,

            Google habe ich nur als beispiel eingesetzt.

            Das hättest du nicht tun sollen.

            Ich lese also aus einer Datenbank aus.

            Wann, wie und wo machst du das?

            Die Daten werden tabelarisch gelistet.

            Du meinst "tabellarisch". Wo und wie werden sie gelistet?

            Hinter jeder Zeile ist ein Lösch-Symbol. Wenn der User was löschen will, will ich das er das nochmal bestätigt.

            Du willst also, daß _vor_ dem Abschicken des Formulars (das wir noch nicht kennen) die Eingaben geprüft werden. Dazu gibts ein prima Beispiel in SELFHTML.

            Diese Bestätigung wollte ich mit dem Source erreichen. Darum auch, ob ich diesen Teil (go_to_top()) irgendwie im <a href> einbringen kann.

            Das kannst du, nur existiert eine solche Funktion in deinem angegebenen Code nicht.

            <script language="javascript">

            Bitte Cheatahs Hinweis zu "type" beachten.

            function delete() {
            if (confirm("Sind Sie sicher, dass Sie google.de aufrufen wollen?"))
              go_to_top("http://www.google.de");

            _Hier_ rufst du eine Funktion auf, die nicht existiert.

            <? [..] while($result = mysql_fetch_array($query)) { [..] ?>

            Das ist für diesen Zusammenhang völlig uninteressant.

            <a href="?action=commentcontrol&id=<? echo $result['id']; ?>"

            Du willst doch deine Funktion aufrufen. Also ist das ganze Zeugs hier in "href" unbrauchbar

            onClick="return delete();;

            Der EventHandler ist schon recht. Aber das "return" solltest du überdenken, und es braucht auch nur _ein_ Semikolon.

            <? } ?>

            Was ist das?

            Mein Ziel ist es, dass jeder Löschversuch nochmal sicherheitshalber bestätigt werden muss.

            Ja, ok, das war von vornherein klar.

            Wenn der User nun in der Meldung auf >OK< klickt

            Wo soll er diese Meldung herbekommen  -  du meinst das "confirm"?

            dann soll die Action (?action=commentcontrol&id=<? echo $result['id']; ?>) wirklich aufgerufen werden.

            Wird sie aber nicht. Klickt der user dorthin, wird "go_to_top()" aufgerufen, und die existiert immer noch nicht.

            Wenn er auf >Abbrechen< klickt, dann soll nichts passieren

            Dieses "nichts" mußt du noch in deinem Script per Anweisung definieren.

            Dachte, dass ich das mit dem Script erreiche.

            Richtig gedacht  -  allerdings nicht mit "dem" Script, das du bisher angegeben hast.

            Grüße aus Berlin

            Christoph S.

            1. Google habe ich nur als beispiel eingesetzt.

              Das hättest du nicht tun sollen.

              Warum nicht? Das würd mich noch interessieren.

              Für mein Problem habe ich ne Lösung gefunden. Siehe Post von Struppi.

          2. <? [..] while($result = mysql_fetch_array($query)) { [..] ?>
            <a href="?action=commentcontrol&id=<? echo $result['id']; ?>" onClick="return delete();; return false;">L&ouml;schen</a>

            Wenn das ganze lediglich ein Link ist, dann reicht ein confirm völlig aus:

            <a href="?action=commentcontrol&id=<? echo $result['id']; ?>"
            onClick="return confirm('sicher');">L&ouml;schen</a>

            Struppi.

            1. »» »» <? [..] while($result = mysql_fetch_array($query)) { [..] ?>

              <a href="?action=commentcontrol&id=<? echo $result['id']; ?>" onClick="return delete();; return false;">L&ouml;schen</a>

              Wenn das ganze lediglich ein Link ist, dann reicht ein confirm völlig aus:

              <a href="?action=commentcontrol&id=<? echo $result['id']; ?>"
              onClick="return confirm('sicher');">L&ouml;schen</a>

              Struppi.

              DANKEEE!!! Das ist Perfekt!! Wusste gar nicht, das es auch so geht!!
              Danke, danke, danke!! Perfekt. :))

            2. hallo Struppi,

              Wenn das ganze lediglich ein Link ist, dann reicht ein confirm völlig aus

              Jaein. Wenn du vom "confirm" noch irgendwelche anderen Sachen abhängig machen willst, reicht es nicht unbedingt. Insofern ist die Grundidee, dann eben eine Funktion aufzurufen, durchaus richtig, die Ausführung allerdings bisher völlig unbefriedigend.

              Grüße aus Berlin

              Christoph S.

              1. Funktioniert aber in meinem Fall. :)

                Adrian

                1. hallo Adrian,

                  Funktioniert aber in meinem Fall. :)

                  Dann ist ja erstmal gut. Du solltest dir trotzdem überlegen, ob das alles ist. Dein _prinzipieller_ Ansatz war nämlich durchaus brauchbar.

                  Jetzt gibt es natürlich noch das Problem, das in fast allen "Javascript"-Threads hier im Forum angemerkt wird: was soll passieren, wenn ein Seitenbesucher Javascript deaktiviert hat?

                  Grüße aus Berlin

                  Christoph S.

              2. Wenn das ganze lediglich ein Link ist, dann reicht ein confirm völlig aus

                Jaein. Wenn du vom "confirm" noch irgendwelche anderen Sachen abhängig machen willst, reicht es nicht unbedingt. Insofern ist die Grundidee, dann eben eine Funktion aufzurufen, durchaus richtig, die Ausführung allerdings bisher völlig unbefriedigend.

                Er will ja nichts abhängig machen, sondern einfach nur den Link ausführen oder nicht. Sein Beispiel war halt etwas unglücklich gewählt.

                Das mit dem confirm bei einem Link, der etwas löschen soll ist ja nix ungewöhnliches. Und hat für User ohne JS nur den Nachteil, dass keine Sicherheitsabfrage kommt (was sich aber auch vermeiden liesse)

                Struppi.

      2. hallo,

        Das ist relativ sinnfrei.
        Warum? Sag doch, dass es um eine Datenbanksache geht. Da muss es bisschen umgeschrieben werden ...

        Das kann ich nicht sagen, weil du nix davon geschrieben hast, daß es dir um eine "Datenbanksache" geht, die du mit Javascript realisieren möchtest  -  die Abfrage mit "confirm" hat mit deiner Datenbank nix zu tun. Javascript kann nicht mit Datenbanken umgehen, das sind zwei verschiedene Dinge. Außerdem willst du nach deinem Code keine Datenbank abfragen, sondern einen weithin bekannten Suchdienst aufrufen.

        Indem du sie dort hineinschreibst (sofern sie existiert, was in deinem Beispiel nicht der Fall ist)?
        Bitte?

        Wenn es denn wirklich mit Javascript gelöst werden soll, schreibst du die entsprechende Funktion doch in einen <script  ...>-Bereich im Header deiner HTML-Datei, gelle? Das heißt, das Script steht dir für jeden beliebigen Aufruf aus dem <body> deines HTML-Dokuments zur Verfügung. In diesem Fall kannst du jede im Script vorkommende Funktion unmittelbar mit ihrem Namen aufrufen bzw. von einem EventHandler ansprechen lassen, was sehr praktisch sein kann. Aber: du möchtest eine Funktion "delete()" aufrufen, die tatsächlich existiert, diese Funktion ruft dann wiederum eine Funktion "go_to_top()" auf, die nicht existiert. Dazu kommt ein Tippfehler mit "goolge"  -  wie soll das Ganze also funktionieren?

        Grüße aus Berlin

        Christoph S.