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.

War es hilfreich?

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.

http://projectshadowlight.org/jquery-easy-confirm-dialog/

http://kailashnadh.name/code/jqdialog/

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top