Hola amigos como están, espero que bien, les cuento que estoy construyendo un programita donde quiero controlar los roles de los usuarios registrados en mi sitio. Para eso, hice un formulario llamado "roles" que contiene un select(donde obtengo el id del usuario que en este caso es el "rut") y varios ckeckbox que tienen el mismo nombre "checkbox[]" pero cada uno tiene un "id" y un "value diferente", todo esto está en un archivo llamado "roles.php"
Entonces mi consulta es la siguiente.
Es posible que al momento de activarse la función "onchange" cambie el estado de los checkcbox a "checked" y marque los roles del usuario seleccionado? He intentado realizar esta acción pero no lo he conseguido, creo que la forma mas idónea de hacerlo es con un for pero no se como estructurar el bucle para que me marque los checkbox. Espero que puedan ayudarme quedo atento a sus comentarios, gracias de antemano.
Mod: Los códigos deben ir en etiquetas GeSHi... segundo aviso
Código (html4strict) [Seleccionar]
<form method="post" enctype="multipart/form-data" name="Roles" id="Roles">
<div class="form-group">
<label class="control-label" >Usuario: </label>
<select class="form-control" id="usuario" name="usuario">
<option value="0">Seleccione un Usuario...</option>
<?php
$usuarios = $prin->obtener_usuarios();
while($usu = pg_fetch_array($usuarios)){
echo '<option value="'.$usu['rut'].'">'.$usu['apellidos'].' '.$usu['nombres'].'</option>';
}
?>
</select>
</div>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<td><strong>Interfaz</strong></td><td align="center"><strong>Crear</strong></td><td align="center"><strong>Editar</strong></td><td align="center"><strong>Eliminar</strong></td>
</tr>
</thead>
<tbody>
<tr class="success">
<td><strong>3.- Seguridad</strong></td><td></td><td></td><td></td>
</tr>
<tr>
<td>Usuarios</td>
<td align="center"><input type="checkbox" name="checkbox[]" id="crear_usuarios" value="crear_usuarios" /></td>
<td align="center"><input type="checkbox" name="checkbox[]" id="editar_usuarios" value="editar_usuarios" /></td>
<td align="center"><input type="checkbox" name="checkbox[]" id="eliminar_usuarios" value="eliminar_usuarios" /></td>
</tr>
<tr>
<td>Roles</td>
<td align="center"><input type="checkbox" name="checkbox[]" id="crear_modulos" value="crear_modulos" /></td>
<td align="center"><input type="checkbox" name="checkbox[]" id="editar_modulos" value="editar_modulos" /></td>
<td align="center"><input type="checkbox" name="checkbox[]" id="eliminar_usuarios" value="eliminar_usuarios" /></td>
</tr>
<tr>
<td>Perfiles</td>
<td align="center"><input type="checkbox" name="checkbox[]" id="crear_perfiles" value="crear_perfiles" /></td>
<td align="center"><input type="checkbox" name="checkbox[]" id="editar_perfiles" value="editar_perfiles" /></td>
<td align="center"><input type="checkbox" name="checkbox[]" id="eliminar_usuarios" value="eliminar_usuarios" /></td>
</tr>
<tr class="success">
<td><strong>4.- Panel de Control</strong></td><td></td><td></td><td></td>
</tr>
<tr>
<tr>
<td>Unidades o Departamentos</td>
<td align="center"><input type="checkbox" name="checkbox[]" id="crear_unidades" value="crear_unidades" /></td>
<td align="center"><input type="checkbox" name="checkbox[]" id="editar_unidades" value="editar_unidades" /></td>
<td align="center"><input type="checkbox" name="checkbox[]" id="eliminar_unidades" value="eliminar_unidades" /></td>
</tr>
</tbody>
</table>
</div>
</form>
Bien, entonces en un archivo de javascript llamo al evento "onChange" de este select, donde envío a una página llamada "controlador_roles.php" el rut del usuario seleccionado, esta página me devuelve como respuesta en un arreglo con todos los roles del usuario seleccionado. A continuación les presento la función.
$('select#usuario').on('change', function(){
var rut_usuario = $(this).val();
var url = '../controlador/controlador_roles.php';
$.ajax({
type:'POST',
url:url,
data:'rut_usuario='+rut_usuario,
success: function(res){ // recibo todos los roles del usuario seleccionado.
var datos = eval(res);
for (i=0;i<datos.length;i++) //recorro la cantidad de roles que tiene el usuario
{
document.getElementById(datos[i]).checked == true;
}
});
return false;
});
Entonces mi consulta es la siguiente.
Es posible que al momento de activarse la función "onchange" cambie el estado de los checkcbox a "checked" y marque los roles del usuario seleccionado? He intentado realizar esta acción pero no lo he conseguido, creo que la forma mas idónea de hacerlo es con un for pero no se como estructurar el bucle para que me marque los checkbox. Espero que puedan ayudarme quedo atento a sus comentarios, gracias de antemano.
Mod: Los códigos deben ir en etiquetas GeSHi... segundo aviso