2

ユーザーのアカウントの詳細を表示するテーブルを作成しています。このテーブルでは、ユーザーのアカウントを管理しています。ここで、クラス accountStatus を使用して、TD の accountStatus の更新された値を表示したいと考えています。

foreach ($result_val->result() as $row) {
        $accountStatus = array('data' =>$row->accountStatus,'class' => 'accountStatus');
        $this->table->add_row($row->username,$row->email,$accountStatus,(($row->accountStatus == 'deleted')? " " :"<input  type=\"button\" id=".$row->userID." class=\"btn btn-warning btn-small block\" value=\"Block\"> <input type=\"button\" id=".$row->userID." class=\"btn btn-success btn-small activate\" value=\"Activate\"> <input type=\"button\" id=".$row->userID." class=\"btn btn-danger btn-small delete\" value=\"Delete\">"));
    }

最後のテーブル列のボタンのいずれかをクリックすると、userID と新しい accountStatus 値がコントローラーに送信されます。

function manage_user_account(userID,value){
    $.post(url,{
        userID : userID,
        value : value
    },
    function(response){
        if(response.status == 1000){
            alert(response.accountStatus);
            $(this).closest('tr').find('.accountStatus').html(response.accountStatus);


            $("#headMsg").text('Account status has been successfully updated');
            $("#headMsg").show();
        }
        else if(response.status == 1300){
            $("#headMsg").text('Account status updation failed ! Try Again.');
            $("#headMsg").show();
        }
        else if(response.status == 1200){
            $("#headMsg").text('Web server error ! Try Again.');
            $("#headMsg").show();
        }
    },'json');
}

ただし、値は同時に更新されず、ページをリロードした後に表示されます。これで私を助けてください。

4

1 に答える 1

0

thisグローバルウィンドウオブジェクトを参照している可能性があります。event.targetクリック ハンドラーから関数に渡します。

$(foo).click(function(event) {
    ...
    manage_user_account(id,val,event.target);
}


function manage_user_account(userID,value,button){
...
    $(button).closest('tr').find('.accountStatus').html(response.accountStatus);
于 2012-09-22T15:38:38.957 に答える