JavaScript - Cargar Checkbox desde javascript

 
Vista:
sin imagen de perfil

Cargar Checkbox desde javascript

Publicado por Rafael (2 intervenciones) el 24/10/2016 05:56:29
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”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$('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.


formulario:

roles
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Cargar Checkbox desde javascript

Publicado por PasabaPorAqui (52 intervenciones) el 02/11/2016 11:06:50
Buenas,

Así de primeras viendo el código por encima, en el último fragmento de código en la línea 12 tienes un error. Lo que estas haciendo es una comparación al poner ==, debería quedar
1
document.getElementById(datos[i]).checked = true;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Cargar Checkbox desde javascript

Publicado por Rafael (2 intervenciones) el 02/11/2016 13:23:07
Hola estimado, gracias por responder, he verificado el error que me indicas pero no he logrado el objetivo de cargar los check que tiene cada usuario, saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar