Ich benutze SweetAlert mit Symfony und möchte, dass der Benutzer bestätigt, bevor eine Löschaktion abgeschlossen wird.Sweet Alert wartet nicht, bis der Benutzer auf OK klickt
Wenn der Benutzer auf die Schaltfläche zum Löschen klickt, wird der SweetAlert angezeigt und verschwindet sofort und der Artikel wurde gelöscht.
Ich möchte nicht, dass das Element gelöscht wird, bis der Benutzer im SweetAlert-Popup auf ok klickt.
Hier ist mein Setup.
JS:
function myFunction() {
swal({
title: "Are you sure?",
text: "You will not be able to recover this Job Title!",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes, delete it!",
closeOnConfirm: false,
closeOnCancel: false
}, function (isConfirm) {
if (isConfirm){
swal("Deleted!", "Job Title has been deleted.", "success");
} else {
swal("Cancelled", "Job Title was not deleted.", "error");
}
});
};
HTML:
<a href="{{ path('setup_jobtitles_delete', {'id': jobTitle.id}) }}" onclick="myFunction()" class="btn btn-white" data-toggle="tooltip" data-toggle="tooltip" data-placement="top" title="Delete">
<i class="fa fa-trash"></i>
</a>
Wie kann ich die Löschaktion warten zu lassen, bis der Benutzer auf OK klickt?
EDIT: Ich landete mit $.post
und zog die href
zu einem data-
wie folgt aus:
<a href="#" onclick="myFunction(this)" data-url="{{ path('setup_jobtitles_delete', {'id': jobTitle.id}) }}" class="btn btn-white" data-toggle="tooltip" data-toggle="tooltip" data-placement="top" title="Delete">
<i class="fa fa-trash"></i>
</a>
function myFunction(btn) {
var url = $(btn).data('url');
swal({
title: "Are you sure?",
text: "You will not be able to recover this Job Title!",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes, delete it!",
closeOnConfirm: false
}, function() {
$.post(url, function(){
swal("Deleted!", "Job Title has been deleted.", "success");
$(btn).parents('tr').remove();
});
});
};
Es hat nichts mit Symfony zu tun. Sie müssen das Verhalten des Standard-Browsers verhindern (indem Sie false onclick d. H. Zurückgeben) – Brewal
Also änderte ich meinen onclick zu diesem: 'myFunction(); return false; 'und es wird nichts gelöscht. Ich kann klicken, ok, aber es löscht nicht. – iamthestreets
Wo hast du gelesen, dass du mit sweetalert alles löschen kannst? Es ist einfach js Alert-Funktion gut aussehende Wrapper. Sie können Ihrer 'isConfirm'-Funktion einen AJAX-Aufruf hinzufügen, um Aktionen in Ihrem Symfony-Backend zu löschen. – malcolm