【问题标题】:How to load checked checkbox in ajax edit modal?如何在 ajax 编辑模式中加载选中的复选框?
【发布时间】:2021-09-23 09:56:07
【问题描述】:

你能帮我如何在编辑模式中加载选中的复选框吗?我正在使用复选框在我的系统中输入多个角色。一切都很好,但我的编辑模式有问题。复选框为空白且未选中。

这是我的 ajax 编辑功能:

function edit_function(task, id) {
    $('#editModal').modal();
    $.ajax({
        method: 'POST',
        url: '<?php echo base_url() . 'user/edit/' ?>' + id,
        dataType: 'json',
        success: function(x) {
            if (resp.length > 0) {
                for (var i = 0; i < resp.length; i++) {
                    id= x[i]['id'];
                    $("#editModalForm input[name=email]").val(x[i]['email']);
                    $('#editModalForm input[name=role_id]').prop('checked', true);
                }
            }
        }
    });
}

这是我的 html 形式的复选框

<?php foreach ($roles as $row) : ?>
<div class="form-check-inline">
    <label class="form-check-label">
        <input type="checkbox" name="role_id[]" id="role_id[]"
            value="<?php echo $row->role_id; ?>"><?php echo $row->role_id; ?>
    </label>
</div>
<?php endforeach; ?>

这是我的 json 结果:

[{"id":288,"role_id":["2","3"],"email":"me@gmail.com"}]

【问题讨论】:

  • 你能试试这个 $('#editModalForminput[name^='role_id']').prop('checked', true); ?
  • @Hkachhia 感谢您的回复。我试过了,但它检查了所有选项
  • 从 id 中删除数组,如 id=role_id 并使用 id 代替名称。它会解决你的问题

标签: javascript php jquery ajax


【解决方案1】:
function edit_function(task, id) {
    $('#editModal').modal();
    $.ajax({
        method: 'POST',
        url: '<?php echo base_url() . 'user/edit/' ?>' + id,
        dataType: 'json',
        success: function(x) {
            if (resp.length > 0) {
                for (var i = 0; i < resp.length; i++) {
                    id= x[i]['id'];
                    $("#editModalForm input[name=email]").val(x[i]['email']);
                
                    for (var r = 0; r < x[i]['role_id'].length; r++) {
                        var role=x[i]['role_id'][r];
                         $('#role_id_'+role).prop('checked', true);
                    }
                }
            }
        }
    });
}


<?php foreach ($roles as $row) : ?>
<div class="form-check-inline">
    <label class="form-check-label">
        <input type="checkbox" name="role_id[]" id="role_id_<?php echo $row->role_id ?" />
            value="<?php echo $row->role_id; ?>"><?php echo $row->role_id; ?>
    </label>
</div>
<?php endforeach; ?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2017-04-19
    • 2015-06-11
    • 1970-01-01
    • 2021-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多