Confermando l'azione prima della trasformazione!
-
02-10-2019 - |
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.
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.
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.