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

0

JS ダイアログを確認した後に href 値を設定するのではなく (非常に奇妙なやり方です)、既に HTML にある href を設定するだけです。

次に、JS確認を起動します

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

戻った場合true(ユーザーが確認を受け入れたとき)、既定のアクションがそのコースを実行します。これは、href のリンクをたどります。ユーザーが確認を受け入れない場合は、デフォルトのアクションを returnfalseでキャンセルしますが、何も起こりません。

于 2013-12-14T10:36:09.587 に答える