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

时间:2016-11-11 06:38:17

标签: php jquery ajax html5 codeigniter-3

美好的一天!通过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);
}

我的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。

提前谢谢你:)

1 个答案:

答案 0 :(得分:0)

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

$("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返回的元素数量。