Confirm - Abfrage
Renegade
- javascript
Hallo,
ich habe folgendes Problem. Ich habe eine Confirm abfrage, die so aussieht:
<script type="text/javascript">
Check = confirm("Möchten sie wirklich löschen?");
if(Check == false) history.back();
</script>
Soviel ich weiß, sollte das Programm nachdem ich auf "Abbrechen" klicke auf die vorhergehende Seite zurück springen - macht es auch, aber er führt trotzdem die nicht erwünschten Scripte aus, die ich eigentlich durch "Abbrechen" verhindern wollte.
Kann mir jemand erklären, was ich falsch mache??
Danke
Gruß
Hallo Renegade,
Du solltest einen Link mitsenden oder etwas mehr Code posten. Mit den wenigen Informationen kann Dir nur schwer geholfen werden.
Gruß
Eidgenosse
Also gut von vorn ;-)
...
<%ELSEIF Loeschen = "Datensatz Löschen" THEN%>
<script type="text/javascript">
Check = confirm("Datensatz unwideruflich löschen?");
if(Check == false) history.back();
</script>
Folgender Datensatz wurde gelöscht:
<%=ID%
<%=Name%>
<%=Vorname%>
<%'rstLoeschen.open "DELETE From Benutzer WHERE ID = '"& ID &"'", con, adopenkeyset%>
<%end if%>
Bei Abbrechen soll der Browser auf die vorherige Seite springen bei OK löschen! Sonst wie gehabt...!
THX
Hi,
so wie das aussieht, verwendest Du ASP.
ASP ist eine serverseitige Technologie, die durch den ASP-Parser ausgeführt wird, _ehe_ die Seite als HTML-File zum Client geschickt wird. Ist sie dann beim Client, wird das JavaScript-Confirm Fensterchen aufgemacht, aber da ist das Kind schon lange in den Brunnen gefallen. Ich fürchte, Du must die Struktur Deiner Aktionen grundlegend neu aufsetzen.
... aber so ganz ist der Fall aus dem Script-Schnippselchen immer noch nicht klar.
Cuao
Hans-Peter
genau asp.
die daten kommen von einer Vorhergehenden seite (seite1) und werden durch ein formular und einem Submit-Button an eine zweite seite (seite2) gesendet und dort mit request.querystring ausgelesen!
um z.b. abzufragen ob ein textfeld leer ist habe ich das auch immer so gemacht bloß mit alert und das hat IMMER funktioniert, bloß mit diesem confirm nicht!
<%if text1 = "" then%>
<script...>
alert ("leer")
history.back()
</script>
<%eelseif%>
<%"speichern in datenbank"%>
Da hat ist er auch zurück ohne die daten zu speichern!!!
nur mit diesem Sch... confirm funktioniert das nicht!!!
trotzdem danke
Hi,
noch mal: Du kannst mit keinem Client-Script der Welt ASP-Zweige ausführen oder umgehen. ASP wird _immer_ vor dem Client-Script ausgeführt, nämlich noch auf dem (ASP-) Server !
Hans-Peter
Ok ich glaub dir das jetzt einfachmal --> Danke!
(Aber mit alert gings doch auch ;-( )
Moin!
Ok ich glaub dir das jetzt einfachmal --> Danke!
(Aber mit alert gings doch auch ;-( )
Ja, logisch. Da hast du "IF-ELSE" ja auch im ASP programmiert:
IF (Daten sind leer)
THEN Javascript-Alert ausgeben, welches eine Seite zurückgeht
ELSE Daten speichern
Die Programmlogik läuft auf dem Server ab, du gibst an den Browser nur noch die Information aus, dass etwas falsch ist. Der Benutzer hat das zwangsweise zu akzeptieren.
Deine Confirm-Lösung sieht so aus:
IF (Datensatz löschen)
THEN Ausgabe eines Javascriptes an den Browser
Ausgabe einer Löschbestätigung
Ausführen des Löschens.
ENDIF
Da wird der Programmablauf nirgendwo durch eine Rückfrage beim Benutzer, ob er weitermachen will, unterbrochen - das Javascript wird erst wirksam, wenn das ASP-Skript komplett durchgelaufen ist.
Wenn du eine Abfrage machen willst, ob wirklich gelöscht werden soll, dann hast du zwei Möglichkeiten:
1. Nachdem der Button mit dem Löschbefehl (oder der Link oder was auch immer) geklickt wird, wird ein Skript aufgerufen, welches erstmal nur "Sind sie sicher?" ausgibt. Darauf sind zwei Links enthalten - einer mit Ja, einer mit NEIN. Klickt man auf ja, wird das endgültige Löschscript aufgerufen, klickt man auf Nein, kommt man zurück zur vorigen Seite - oder sonst irgendwo hin.
2. Du kannst auch onclick auf der ersten Seite den Buttonklick abfangen:
onclick="return confirm('Sind sie sicher?');"
Ein Klick beispielsweise auf einen Link wird ignoriert, wenn onclick ein "return false" ausführt. Wenn bei confirm der Benutzer abbricht, ergibt confirm false - und der Klick wird nicht benutzt, das heißt die Folgeseite gar nicht erst aufgerufen.
Nachteil: Ohne Javascript wird nicht nachgefragt - aber da hat man, wie ich fürchte, bei dir sowieso schon schlechte Karten.
- Sven Rautenberg
Na also geht doch!
Warum bekommt man nicht immer solche detailierten antworten - da können auch "neue" was damit anfangen! Die Lösung mit --onclick...-- reicht mir völlig!!!
Danke
MFG
Hi,
Na also geht doch!
Warum bekommt man nicht immer solche detailierten antworten - da können auch "neue" was damit anfangen!
Entschuldigung, aber ich musste um 15 Uhr in ein Meeting. Und so schön wie der Sven hätte ich das sowieso nicht erklären können.
Es ist übrigens schon immer ein kleiner Drahtseilakt, auf welches Niveau man seine Antworten plaziert. Man möchte ja die Frager weder überfordern noch langweilen. Und wer JavaScript mit ASP mixt - so dachte ich fehlerhafterweise - kann so "neu" eigentlich nicht sein.
Ciao, und einen guten Wirkungsgrad
Hans-Peter
Halli,
<script type="text/javascript">
Check = confirm("Möchten sie wirklich löschen?");
if(Check == false) history.back();
</script>
Soviel ich weiß, sollte das Programm nachdem ich auf "Abbrechen" klicke auf die vorhergehende Seite zurück springen - macht es auch, aber er führt trotzdem die nicht erwünschten Scripte aus, die ich eigentlich durch "Abbrechen" verhindern wollte.
Welche nicht erwünschten Scripte? Ich seh keine.
cu,
Robert
Hallo,
Tach,
Soviel ich weiß, sollte das Programm nachdem ich auf "Abbrechen" klicke auf die vorhergehende Seite zurück springen
jo
- macht es auch,
aaah !
aber er führt trotzdem die nicht erwünschten Scripte aus, die ich eigentlich durch "Abbrechen" verhindern wollte.
oooh !
Kann mir jemand erklären, was ich falsch mache??
wo sind denn die "nicht erwünschten Scripte". Kannst Du das Problem mal etwas genauer erläutern ? Hast Du die "nicht erwünschten Scripte" schon mal in den else-Zweig gepackt ?
Danke
Bitte
Gruß
Brav !