1

每当单击按钮时,我都会尝试将名为 inactive 的 tinyint 字段从 0 更新为 1。我确定我得到了正确的 id,所以那里没有问题,但我无法更新该字段。

这是我的视图代码。

<a id="deactivate" role="button" href=<?php echo site_url('user/deactivate'); ?>>Deactivate</a>
<script>
$(document).ready(function() {
$('a#deactivate').bind('click',function(event){
      if (confirm("Are you sure you want to deactivate " + id_deactivate + "?")) {
            url_deactivate = ('<?php echo site_url('user/deactivate'); ?>');
                $('a#deactivate').attr('href', function() {
                    var newURL0 =  url_deactivate + "/" + id_deactivate;
                    console.log(newURL0);
                    return newURL0;
                })
          } else{
                event.preventDefault()
          }
    });
});
</script>

对于模型:

public function deactivateUser($id, $data){
        if($this->db->update('user', "`inactive` = '".$data."'", "`user_id` = '".$id."'")){
            return true;
        }
        return false;
    }

对于控制器:

public function deactivate($id){
    $this->session->set_userdata('page', 'user'); 
    $this->session->set_userdata('action', 'view');
    $data['inactive'] = 1;
    $this->user_model->deactivateUser($id, $data);
    redirect('user');
}

我很确定问题出在控制器上,但我不知道如何解决。谁能帮我?先感谢您。

4

2 回答 2

1

在模型中试试这个

    $this->db->where('user_id', $id);
    $update = $this->db->update('user', $data); 
    if($update) return TRUE;
    return FALSE:

在此处查看更多信息

于 2013-12-14T10:32:53.213 回答
0

而不是在确认 JS 对话框后设置 href 值(真的很奇怪的做法),只需在 HTML 中设置 href 即可。

然后你启动 JS 确认

return (confirm("Are you sure you want to deactivate " + id_deactivate + "?")) ? true : false;

如果您返回true(当用户接受确认时),您让默认操作运行它的过程,即跟随 href 中的链接。如果用户不接受确认,您可以使用 return 取消默认操作false,并且没有任何反应。

于 2013-12-14T10:36:09.587 回答