Tengo una ventana modal de edición con entrada de casilla de verificación en mi proyecto laravel. Quiero que se marque el valor en la casilla de verificación cuando abra el formulario de edición. No sé por qué siempre verificó el primer valor y no se ajusta al valor de la base de datos como esta imagen:
Código HTML:
<form action="" method="put" id="editForm"> <div id="editModal"> <div class="form-group row"> <label for="roles" class="col-md-2 col-form-label">Roles</label> <div class="col-md-10 mt-2"> <?php foreach ($roles as $value) : ?> <div class="form-check-inline"> <label class="form-check-label"> <input type="checkbox" name="roles" id="editRoles" value="{{$value->id}}"> <?= $value->name ?> </label> </div> <?php endforeach; ?> </div> </div> </div> </form>Guión Ajax:
<script> $('body').on('click', '#edit', function(e) { id = $(this).data('id'); $.ajax({ url: "users/" + id + "/edit", method: 'GET', success: function(result) { $('#editModal').show(); for (let i = 0; i < result.roles.length; i++) { $('#editRoles').prop('checked', result.roles[i]); } console.log(result.roles); } }); }); </script>controlador:
public function edit(Request $request, $id){ $decode_id = Hashids::decodeHex($id); $role = Role::findOrFail($decode_id); $permission = $role->getPermissionNames(); if ($request->ajax()) { return response()->json(['role' => $role, 'permission' => $permission]); } } También probé la solución desde aquí con este código: $("#editModal input[type='checkbox']").prop('checked', result.roles[i]) ;
¡Pero está comprobado todo el valor! ¿Alguien tiene solución para esto?