Was ist der beste Weg, um einen "bestätigen" -option" zu einem löschen Formular in Symfony2?
Wenn Sie CRUD-code für eine Entität in Symfony2 mit der Konsole, werden Sie am Ende mit eine sehr einfache Funktion löschen.
Diese Funktion ist schlank und effizient, aber nicht ein "sind Sie sicher?"-Bestätigung. Wenn die Entität gelöscht werden, existiert, wird es sofort gelöscht werden.
Hat jemand Vorschläge für die einfachste Methode zum hinzufügen von Benutzer-Bestätigung?
Bis jetzt habe ich mit:
- Eine zusätzliche controller-Funktion
- jQuery
Scheint es ein wenig seltsam aber, dass Symfony2 hätte keine built-in-option für diese. Jemand bessere Ideen?
warum jQuery oder einfach Javascript ist nicht geeignet für Sie?
Gut, es ist, aber ich hätte gedacht, dass Symfony2 hätte eine eingebaute option für Sie. Ich denke, es hat nicht, und javascript ist der Weg zu gehen.
Ich würde vorschlagen, eine javascript-Bestätigung, und wenn die Daten wichtig sind, möglicherweise eine softdelete Verlängerung, so dass Personen nicht aus der Datenbank gelöscht völlig.
OK danke Mike, ich werde es bauen, wie Sie vorschlagen. So betrachten Sie Ihre Antwort akzeptiert 😉
Gut, es ist, aber ich hätte gedacht, dass Symfony2 hätte eine eingebaute option für Sie. Ich denke, es hat nicht, und javascript ist der Weg zu gehen.
Ich würde vorschlagen, eine javascript-Bestätigung, und wenn die Daten wichtig sind, möglicherweise eine softdelete Verlängerung, so dass Personen nicht aus der Datenbank gelöscht völlig.
OK danke Mike, ich werde es bauen, wie Sie vorschlagen. So betrachten Sie Ihre Antwort akzeptiert 😉
InformationsquelleAutor Paul Maclean | 2012-12-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte man auch machen das basic-löschen-Feld des Formulars mit einem zusätzlichen Attribut:
In Ihrem Twig-Template:
Es funktioniert, vielen Dank.
InformationsquelleAutor jpbaxxter
Nur verwenden, bestätigen Sie die javascript-Funktion auf Ihren link löschen
InformationsquelleAutor rpayanm
Ein Problem mit:
{{ form(delete_form, {'attr': {'onclick': 'return confirm("Are you sure?")'}}) }}
Ist, dass es bewirkt, dass eine doppelte Bestätigungs-Dialogfeld, um pop-up. Eine bessere Lösung ist, platzieren Sie Sie innerhalb des Controllers auf das löschen des Formulars...
Dann der onclick-Funktion auf der Taste anstelle der form.
InformationsquelleAutor Cathmor
Eine einfache Lösung ist, um tatsächlich zeigen Sie Ihre form zweimal:
Erstens, der Benutzer füllt alle Felder aus. Dann erkennen wir, dass es noch nicht bestätigt wurde bereits, so dass wir re-Rendern. Dieses mal das javascript sofort bietet der Bestätigungs-dialog.
Zu diesem Zweck haben wir ein hidden-Feld
confirmed
der form und parameter der Zweig rendering:Und in der Vorlage zum hinzufügen einer javascript wie:
InformationsquelleAutor Olli D-Metz