2010-07-07 8 views
0

Je fais un site de gestion de contacts dans codeigniter, j'ai une fonction qui supprime le contact basé sur id.Confirmer l'action avant le traitement!

Par exemple, tous les contacts seront listés sur la page. Et chaque contact aura un lien disant supprimer près de lui. Le lien sera à la fonction qui passe l'identifiant, comme:

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

donc je veux une boîte de confirmation pour demander à l'utilisateur, oui ou non pour chaque lien. Donc, si l'utilisateur appuie sur oui, il sera supprimé et rien ne se passe. J'espère que je suis clair.

+0

Je ne comprends pas la question, et je ne pense pas que je suis seul. – MJB

+0

Nous n'écrirons pas le code pour vous, ne corrigez que le mauvais code que vous avez déjà écrit. ASTUCE: vous devriez utiliser AJAX. – bschaeffer

Répondre

3

Vous avez besoin d'une invite de javascipt:

Votre JS

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

Puis ajouter un événement onclick à votre lien.

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

Si vous voulez quelque chose de brillant et moins intrusive je suggérer jquery avec l'un d'un multiple de plug-ins de dialogue de confirmation.

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

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

1

Vous pouvez avoir une page de confirmation avec un formulaire à renvoyer à la même URL. Dans le contrôleur, vérifiez si le formulaire a été envoyé. Si c'est le cas, supprimez le contact. Sinon, affichez la page de confirmation.

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

Si vous ne voulez pas l'idée d'une page supplémentaire que vous pouvez utiliser javascript pour afficher une boîte de confirmation et faire un poste AJAX si l'utilisateur confirme.

Edit:

En passant, ce que j'éviter de faire exécute le supprimer par un HTTP GET. Une araignée ou un bot suivant les liens de suppression pourrait par inadvertance supprimer tous les contacts. Il est préférable d'utiliser HTTP POST.

Questions connexes