|
|||
![]()
Hallo zusammen
Ich suche schon seit Stunden... aber das gejammer kennt ihr sicher alle schon. Meine Zielsetzung: Ich habe einen simplen Filemanager für Up/Downloads zum Dokumente-Austausch erstellt. In diesem gibts auch eine Löschfunktion. Diese wird auf einer anderen Seite via Parameterübergabe (Dateipfad auf dem Server) ausgeführt. Vor dem Löschen erscheint ein Dialog "Löschen: JA / NEIN". Erst danach wird auf die Lösch-Seite weitergeleitet. Das funktioniert alles: Der Filemanager und die Löschfunktion passen wunderbar zusammen. Nur schade ist, dass keine "Sind Sie sicher?"-Abfrage kommt. Dateien könnten so schnell mal aus Versehen gelöscht werden. Also habe ich eine simple Lösung gefunden, welche optisch auch noch gut aussieht: jQuery msgBox. Diese habe ich eingebunden und wird auch angezeigt. Alternativ dazu könnte ich auch die jQuery-Dialogbox nehmen. Dialog | jQuery UI. Ich denke aber nicht, dass sich so mein Problem lösen würde. Mein Problem: Wenn ich auf JA, Datei löschen klicke, wird der Browser an die URL www.meine-url.ch/undefined weitergeleitet. Aus meiner Sicht wird der Link (HREF) nicht an die JS-Function übergeben. Das Problem liegt also nicht am Filemanager, an der Löschfunktion oder an der Message-Box. Unten die Ausschnitte aus dem Code. Ich vermute, dass ich einen Anfängerfehler gemacht habe. Aber im Moment sitze ich mit meinen Gedanken in einer Sackgasse fest und komme nicht weiter. JavaScript im Head: Code:
<script type="text/javascript"> function fragebox() { $.msgBox({ title: "Datei löschen", content: "Wollen Sie diese Datei wirklich unwiederruflich löschen?", type: "confirm", buttons: [{ value: "Ja" }, { value: "Nein" }], success: function (result) { if (result == "Ja") { window.location.href = this.href; } } }); } </script> HTML-Code:
<a href="http://www.meine-url.ch/filemanager_delete.asp?PATH=d:\meine-url\files\unterordner\dateiname.pdf" onClick="fragebox(); return false;"> <img src="http://www.meine-url.ch/template/design/delete.png" alt=""> </a> Gruss Kangooroo |
Sponsored Links |
|
|||
![]()
Lösch- und Updateaktionen sollten niemals per GET sondern immer per POST übertragen werden. Allein schon der Sicherheit wegen.
__________________
"Wieso ist der Code schrott, ich dachte hier seien Profis..." Aus einem Forum. |
Sponsored Links |
|
|||
![]()
"this" ist in deinem Fall nicht der link. Daher kann das nicht funktionieren. Du müsstest schon "this" als Parameter in der onClick Anweisung angeben. Da ist aber komplett was im Argen. Gerade mit JQuery gibts da einige Möglichkeiten das zu lösen.
Hier die einfachste Möglichkeit, aber nicht die eleganteste: Code:
<a href="javascript:fragebox('http://www.meine-url.ch/filemanager_delete.asp?PATH=d:\\meine-url\\files\\unterordner\\dateiname.pdf')"> <img src="http://www.meine-url.ch/template/design/delete.png" alt=""> </a> die Funktion umbauen: Code:
function fragebox(url) { $.msgBox({ title: "Datei löschen", content: "Wollen Sie diese Datei wirklich unwiederruflich löschen?", type: "confirm", buttons: [{ value: "Ja" }, { value: "Nein" }], success: function (result) { if (result == "Ja") { window.location.href = url; } } }); } oder auch so: Code:
<a href="http://www.meine-url.ch/filemanager_delete.asp?PATH=d:\meine-url\files\unterordner\dateiname.pdf" onClick="fragebox(this); return false;"> <img src="http://www.meine-url.ch/template/design/delete.png" alt=""> </a> function fragebox(elm) { $.msgBox({ title: "Datei löschen", content: "Wollen Sie diese Datei wirklich unwiederruflich löschen?", type: "confirm", buttons: [{ value: "Ja" }, { value: "Nein" }], success: function (result) { if (result == "Ja") { window.location.href = elm.href; } } }); } Code:
window.location.href = $(elm).attr('href');
__________________
Blog |
|
|||
![]()
@Jörg
Danke für Deine Unterstützung. Ich werde es in Kürze ausprobieren und berichten. @explanator Das ist mir schon auch bewusst. Die ganze Oberfläche verbirgt sich aber hinter einem Login. Und die Dateien auf dem Server sind i.d.R. PDF-Dateien mit sehr geringem Geheimhaltungsgrad sowie niedrigem Informationswert für Aussenstehende. Gruss Kangooroo |
|
|||
![]()
Mal abgesehen davon, dass ich auch über Ajax posten würde - schon allein um den Prozess im Hintergrund halten zu können, spielt das eigentlich nicht wirklich eine große Rolle. Solange die delete URL nicht öffentlich aufrufbar ist und kein gültiger Parameter übergeben wird.
Selbst mit F5 (oder Browser Back Button) kann man bei dieser Lösung nicht mehr viel Schaden anrichten, die Datei ist ja schon gelöscht. Ob das jetzt elegant ist, ist wieder eine ganze andere Frage. Mit Ajax und JQuery könntest du das schon besser lösen, da du dann die Seite nicht verlassen musst und auch auf mögliche Fehler reagieren könntest. Aber wenns es nur ein kleines Projekt ist, dann funktioniert das wie oben beschrieben schon so. @protonenbeschleuniger oder was genau sind deine Bedenken?
__________________
Blog |
|
|||
![]() Zitat:
Bots, Suchmaschinencrawler sowie Browser-Add-ons kennen kein Erbarmen und folgen gnadenlos jeden Link. Einziger Schutz. Daten per POST senden und allen von aussen hereinkommenden Angaben zu misstrauen.
__________________
"Wieso ist der Code schrott, ich dachte hier seien Profis..." Aus einem Forum. |
Sponsored Links |
|
|||
![]()
Danke für die Ratschläge. Ich erklär kurz im Detail, wie's mit der gesamten Geschichte aussieht:
Ich hoffe, ich konnte Eure Bedenken minimieren. An der Sicherheit könnte ich noch hochschrauben, ist aber echt nicht nötig. Danke nochmlas für Eure Inputs. Gruss Kangooroo |
Sponsored Links |
![]() |
Stichwörter |
confirm, fehler, href, javascript, link, messagebox, problem, übergabe |
Themen-Optionen | |
Ansicht | |
|
|
![]() |
||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
JavaScript und mobile Weiterleitung | sven.le | Javascript & Ajax | 7 | 08.07.2013 15:59 |
Slider Nav | crixon | Javascript & Ajax | 0 | 30.01.2012 14:33 |
Zustand des Internets: Das Web wird langsamer | Pascolo | Offtopic | 11 | 23.10.2009 11:55 |
Problem mit z-index | Unearth | CSS | 10 | 23.04.2009 07:49 |
Ratschläge bei Publizierung eines fertigen Layouts gesucht | Black Fladder | CSS | 55 | 05.09.2004 15:30 |