Domanda

sto facendo un sito di gestione dei contatti in CodeIgniter, ho una funzione che elimina il contatto sulla base di id.

Per esempio la pagina avrà tutti i contatti elencati. E ogni contatto avrà un collegamento dicendo di eliminazione vicino ad esso. Il collegamento sarà alla funzione passando l'id, come:

www.site.com/index.php/action/delete/23

Quindi, voglio una finestra di conferma per chiedere all'utente, sì o no per ogni link. Quindi, se si stampa utente verrà eliminato e altrimenti non succede nulla. Spero di essere stato chiaro.

È stato utile?

Soluzione

Hai bisogno di una Javascipt richiesta:

Il tuo JS

function confirm_delete(){
    var r=confirm("Are you sure?");
    if (r==true){
      //Do somthing
    }else{
      //cancel
    }
}

Poi aggiungere un evento onclick al tuo link.

<a href="#" onclick="confirm_delete();">Delete</a>

Se si desidera qualcosa di lucido e meno invadente mi permetto di suggerire jQuery con uno di un multiplo di dialogo plugin conferma.

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

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

Altri suggerimenti

Si potrebbe avere una pagina di conferma con un modulo per inviare di nuovo allo stesso URL. Nel controllo controllore se il modulo è stato inviato. In caso affermativo, eliminare il contatto. In caso contrario, visualizzare la pagina di conferma.

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));
    }
}

Se non ti piace l'idea di una pagina in più si potrebbe usare un po 'di javascript per visualizzare una finestra di conferma e fare un posto AJAX se le conferma dell'utente.

Modifica

Proprio come un a parte, quello che io eviterei di fare sta attuando la cancellazione attraverso un HTTP GET. Un ragno o bot seguendo i link di eliminazione potrebbero inavvertitamente eliminare tutte le schede. Il suo meglio usare HTTP POST.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top