处理前确认动作!

时间:2010-07-07 18:38:46

标签: php codeigniter confirm

我在codeigniter中做了一个联系人管理网站,我有一个基于id删除联系人的功能。

例如,该页面将列出所有联系人。并且每个联系人都会在其附近显示删除链接。链接将是传递id的函数,如:

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

所以我想要一个确认框询问用户,是或否每个链接。因此,如果用户按是,它将被删除,否则没有任何反应。希望我很清楚。

2 个答案:

答案 0 :(得分:3)

你需要一个javascipt提示符:

你的JS

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

然后在链接中添加onclick事件。

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

如果你想要一些有光泽且不那么具有侵入性的东西,我可以建议使用多个确认对话框插件中的一个进行jquery。

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

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

答案 1 :(得分:1)

您可以拥有一个包含表单的确认页面,以便回发到同一个网址。在控制器中检查表单是否已提交。如果有,请删除该联系人。如果没有,请显示确认页面。

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

如果您不喜欢额外页面的想法,可以使用一些javascript来显示确认框并在用户确认时执行AJAX帖子。

修改:

除此之外,我要避免做的是通过HTTP GET实现删除。删除链接后的蜘蛛或机器人可能会无意中删除所有联系人。最好使用HTTP POST。