Ich habe eine HTML-Tabelle mit Zeilen, die an Datenbankzeilen gebunden sind. Ich hätte gerne einen Link zum Löschen einer Zeile für jede Zeile, möchte dies aber vorher mit dem Benutzer bestätigen.
Gibt es eine Möglichkeit, dies über den modalen Twitter-Bootstrap-Dialog zu tun?
Antworten:
Rezept bekommen
Für diese Aufgabe können Sie bereits verfügbare Plugins und Bootstrap-Erweiterungen verwenden. Oder Sie können Ihr eigenes Bestätigungs-Popup mit nur 3 Codezeilen erstellen. Hör zu.
Angenommen, wir haben diese Links (Notiz
data-href
statthref
) oder Schaltflächen, für die wir eine Löschbestätigung wünschen:Hier
#confirm-delete
verweist auf ein modales Popup-Div in Ihrem HTML. Die Schaltfläche "OK" sollte wie folgt konfiguriert sein:Jetzt brauchen Sie nur noch dieses kleine Javascript, um eine Löschaktion zu bestätigen:
Bei einem
show.bs.modal
Ereignis wird die Schaltflächehref
zum Löschen auf URL mit der entsprechenden Datensatz-ID gesetzt.Demo: http://plnkr.co/edit/NePR0BQf3VmKtuMmhVR7?p=preview
POST Rezept
Mir ist klar, dass in einigen Fällen möglicherweise eine POST- oder DELETE-Anforderung anstelle von GET erforderlich ist. Es ist immer noch ziemlich einfach ohne zu viel Code. Schauen Sie sich die folgende Demo mit diesem Ansatz an:
Code-Snippet anzeigen
Demo: http://plnkr.co/edit/V4GUuSueuuxiGr4L9LmG?p=preview
Bootstrap 2.3
Hier ist eine Originalversion des Codes, den ich bei der Beantwortung dieser Frage für Bootstrap 2.3 modal erstellt habe.
Demo : http://jsfiddle.net/MjmVr/1595/
quelle
http://bootboxjs.com/ - Die neuesten Funktionen funktionieren mit Bootstrap 3.0.0
Das einfachste mögliche Beispiel:
Von der Website:
Hier ist ein Ausschnitt davon in Aktion (klicken Sie unten auf "Code-Snippet ausführen"):
quelle
quelle
Ich würde erkennen, dass es eine sehr alte Frage ist, aber seit ich mich heute nach einer effizienteren Methode für den Umgang mit den Bootstrap-Modalen gefragt habe. Ich habe einige Nachforschungen angestellt und etwas Besseres gefunden als die oben gezeigten Lösungen, die unter diesem Link zu finden sind:
http://www.petefreitag.com/item/809.cfm
Laden Sie zuerst die Abfrage
Dann stellen Sie einfach eine Frage / Bestätigung an href:
Auf diese Weise ist das Bestätigungsmodal viel universeller und kann daher problemlos in anderen Teilen Ihrer Website wiederverwendet werden.
quelle
Dank der Lösung von @ Jousby gelang es mir auch, meine zum Laufen zu bringen, aber ich musste das modale Bootstrap-Markup seiner Lösung ein wenig verbessern, damit es korrekt gerendert wird, wie in den offiziellen Beispielen gezeigt .
Hier ist meine modifizierte Version der generischen
confirm
Funktion, die gut funktioniert hat:quelle
btnType = "btn-primary"
und dann den Code für die Schaltfläche OK zu ändernclass="btn ' + btnType + '"
. Auf diese Weise kann ein optionales Argument übergeben werden, um das Erscheinungsbild der Schaltfläche OK zu ändern, beispielsweise beimbtn-danger
Löschen.Ich fand das nützlich und einfach zu bedienen, und es sieht hübsch aus: http://maxailloud.github.io/confirm-bootstrap/ .
Um es zu verwenden, fügen Sie die .js-Datei in Ihre Seite ein und führen Sie dann Folgendes aus:
Es gibt verschiedene Optionen, die Sie darauf anwenden können, damit es beim Bestätigen eines Löschvorgangs besser aussieht. Ich verwende:
quelle
Ich kann diese Art von Aufgabe leicht mit der Bibliothek bootbox.js erledigen. Zuerst müssen Sie die Bootbox-JS-Datei einschließen. Dann schreiben Sie in Ihrer Event-Handler-Funktion einfach folgenden Code:
Offizielle Bootbox- Site
quelle
Die folgende Lösung ist besser als bootbox.js , weil
digimango.messagebox.js :
So verwenden Sie digimango.messagebox.js :
quelle
Sie können versuchen, meine Lösung mit Rückruffunktion wiederverwendbarer zu machen . In dieser Funktion können Sie eine POST-Anforderung oder eine Logik verwenden. Verwendete Bibliotheken: JQuery 3> und Bootstrap 3> .
https://jsfiddle.net/axnikitenko/gazbyv8v/
HTML-Code zum Testen:
Javascript:
quelle
Wenn es um ein relevant großes Projekt geht, benötigen wir möglicherweise etwas Wiederverwendbares . Dies ist etwas, mit dem ich mit Hilfe von SO gekommen bin.
verifyDelete.jsp
reusingPage.jsp
Hinweis: Hierbei wird die http-Löschmethode zum Löschen von Anforderungen verwendet. Sie können sie von Javascript aus ändern oder sie mithilfe eines Datenattributs wie Datentitel oder Daten-URL usw. senden, um jede Anforderung zu unterstützen.
quelle
Wenn Sie es in der einfachsten Verknüpfung tun möchten, dann können Sie es mit diesem Plugin tun .
Dieses Plugin ist jedoch eine alternative Implementierung mit Bootstrap Modal . Eine echte Bootstrap-Implementierung ist ebenfalls sehr einfach. Daher verwende ich dieses Plugin nicht gern, da es der Seite überschüssigen JS-Inhalt hinzufügt, wodurch die Ladezeit der Seite verlangsamt wird.
Idee
Ich implementiere es gerne selbst auf diese Weise.
Dann gibt es im Popup 2 Schaltflächen zur Bestätigung.
Der Code wird so sein (mit Bootstrap ) -
Sie sollten die Formularaktion entsprechend Ihren Anforderungen ändern.
Viel Spaß beim Coading :)
quelle
POST-Rezept mit Navigation zur Zielseite und wiederverwendbarer Blade-Datei
Die Antwort von dfsq ist sehr nett. Ich habe es ein wenig an meine Bedürfnisse angepasst: Ich brauchte tatsächlich ein Modal für den Fall, dass der Benutzer nach dem Klicken auch zur entsprechenden Seite navigiert wird. Die asynchrone Ausführung der Abfrage ist nicht immer das, was man braucht.
Mit
Blade
Ich habe die Datei erstelltresources/views/includes/confirmation_modal.blade.php
:Jetzt ist die Verwendung einfach:
Hier hat sich nicht viel geändert und das Modal kann folgendermaßen aufgenommen werden:
Nur indem das Verb dort eingefügt wird, wird es verwendet. Auf diese Weise wird auch CSRF verwendet.
Hat mir geholfen, vielleicht hilft es jemand anderem.
quelle