Bestätigen Aktion vor der Verarbeitung!
-
02-10-2019 - |
Frage
Am eine Kontakt-Management-Website in codeigniter tun, habe ich eine Funktion, die den Kontakt basierend auf ID löschen.
Zum Beispiel wird die Seite alle Kontakte aufgeführt. Und jeder Kontakt einen Link hat in der Nähe davon zu sagen löschen. Der Link zur Funktion sein wird, die ID vorbei, wie:
www.site.com/index.php/action/delete/23
Also ich ein Bestätigungsfeld möge Benutzer fragen, ja oder nein für jeden Link. Also, wenn Benutzer drücken ja wird es gelöscht und sonst nichts passiert. Hoffe, dass ich bin klar.
Lösung
Sie benötigen einen JavaScript-Eingabeaufforderung:
Ihre JS
function confirm_delete(){
var r=confirm("Are you sure?");
if (r==true){
//Do somthing
}else{
//cancel
}
}
Dann ein Onclick-Ereignis zu Ihrem Link hinzufügen.
<a href="#" onclick="confirm_delete();">Delete</a>
Wenn Sie etwas glänzend und weniger aufdringlich kann ich jquery mit einer von mehreren von Bestätigungsdialog Plugins vor.
Andere Tipps
Sie konnten eine Bestätigungsseite mit einem Formular auf die gleiche URL zu posten. In der Steuerung überprüft, ob das Formular abgeschickt wurde. Ist dies der Fall, löschen Sie den Kontakt. Wenn nicht, auf die Bestätigungsseite angezeigt werden soll.
function delete($id)
{
if ($this->input->post('confirm'))
{
$this->contact_model->delete($id);
}
else
{
$contact = $this->contact_model->get_contact($id);
$this->load->view('delete_confirm', array('contact' => $contact));
}
}
Wenn Sie nicht wie die Idee einer zusätzlichen Seite tun könnten Sie einige Javascript verwenden, um eine Bestätigung anzuzeigen und wenn der Benutzer bestätigt, eine AJAX-Post zu tun.
Edit:
Wie Nebenbei bemerkt, was ich vermeiden würde tun, ist den Lösch über ein HTTP-GET-Implementierung. Eine Spinne oder bietet den Lösch folgenden Links könnten versehentlich alle Kontakte löschen. Es ist besser, HTTP POST zu verwenden.