如何用ajax从数据库中选中复选框/单选框值


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

大家好!我有一个问题,当通过ajax请求从数据库更新值。它不会选中复选框也不会选中单选框。选择选项可以正常工作。我错过什么了吗?下面是我当前的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);
}

my HTML radiobox:

<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返回了多少个元素。