如何使用 ajax 从数据库中检查 checkbox/radiobox 值?

How to checked checkbox/radiobox values from database with ajax?

美好的一天!通过 ajax 请求从数据库更新值时出现问题。它没有选中复选框,而且 radio box.The select 选项工作正常。我错过了什么吗? 这是我当前的 Ajax 代码:

    function editUser(user_id) {
    $('#addUser').css("display", "none");
    $('#updateUser').css("display", "");

    $.post(baseurl + 'globalFunction/getUserData', {

        user_id: user_id

    }, function (data) {
        var result = eval('(' + data + ')');

        $('#username').val(result[0].user_username);
        $('#group_select option[value="' + result[0].user_group_id + '"]').prop("selected", true);
        $('#sub_group_select option[value="' + result[0].sub_group_id + '"]').prop("selected", true);
        $("[name=userType_edit]").filter("[value="+ result[0].user_type+"]").attr("checked","checked");
    $('.check_perm input[value="'+ result[0].perm_id +'"]').prop('checked', true);

    })

}

我的Php:

 function getUserData(){

        $user_id = $this->input->post('user_id');

        $sql = $this->crud->getData("tbl_user as u,tbl_group as g, tbl_sub_group as sg, tbl_user_permission as up", "u.user_id='$user_id' AND u.user_group_id=g.group_id AND u.user_sub_group_id = sg.sub_group_id AND up.user_id ='$user_id'")['rows'];

        echo json_encode($sql);
}

我的HTML单选框:

<div class="radio-list">
                                            <label class="radio">
                                                <input type="radio" class="userType_radio" name="userType_edit"  value="President"> President </label>
                                            <label class="radio">
                                                <input type="radio"class="userType_radio" name="userType_edit"  value="Vice President"> Vice President </label>
                                            <label class="radio">
                                                <input type="radio"class="userType_radio" name="userType_edit" value="Dean"> Dean </label>
                                            <label class="radio">
                                                <input type="radio"class="userType_radio" name="userType_edit"  value="Staff"> Staff </label>
                                            <label class="radio">
                                                <input type="radio"class="userType_radio" name="userType_edit"  value="Area Head"> Area Head </label>
                                            <label class="radio">
                                                <input type="radio"class="userType_radio" name="userType_edit"  value="Adviser"> Adviser </label>
                                            <label class="radio">
                                                <input type="radio"class="userType_radio" name="userType_edit"  value="Faculty"> Faculty </label>
                                            <label class="radio">
                                                <input type="radio"class="userType_radio" name="userType_edit"  value="Student"> Student </label>
                                        </div>

php 复选框:

function selectOptionUserPermissionList(){

$sql=$this->crud->getData("tbl_permission","perm_status = '1'");

$data='';
    foreach($sql['rows'] as $key){
    $data.='<label><input type="checkbox" class="icheck check_permission check_perm" name="permission[]" id="'.$key->perm_id.'" value="'.$key->perm_id.'">' . $key->perm_description.'</label>';
}

$result['a']= $data;

echo json_encode($result);

}

我正在使用 codeigniter。

提前谢谢你:)

请检查这是否有帮助。要检查单选按钮,请使用

$("input:radio[name=userType_edit][value="+result[0].user_type+"]").prop( 'checked', true );

关于复选框不确定您缺少什么。

我希望下面是您要检查复选框的行。

$('.check_perm input[value="'+ result[0].perm_id +'"]').prop('checked', true);

上一行有效,但我建议检查您使用的选择器。

你可以使用

console.log( $('.check_perm input[value="'+ result[0].perm_id +'"]').length)

检查 jQuery 返回了多少元素。