Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/03/2016, 17:24
Avatar de loncho_rojas
loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: CHECKEAR campos checkbox de acuerdo a array o session

EDITO:

Esto sirve en el caso que necesite editar las selecciones realizadas por un usuario mediante checkbox... en mi caso, eran maestros que seleccionaban 1 o más materias de un listado, pero luego necesitaban modificar por X razón, ya sea para agregar nuevos o deseleccionar alguno. Ojo que solo pone CHECKED a los INPUT segun coincidan en la BD, la edición, agregados, es decir, UPDATES, DELETE y demás, se generan con otras funciones y rutinas PHP-Mysql.-

Lo solucioné así, y espero se entienda, después lo traducen a PDO o Mysqli, o lo que deseen que no esté DEPRECATED...

Código PHP:
<?php
                
//traigo las materias seleccionadas por el usuario
                
$s "SELECT idmateria FROM permisos_materias WHERE idusuario = ".$idusuario;
                
$q mysql_query($s$conn);
                
// creo el array de materias seleccionadas por el cliente
                
$materias_usuario = array(); 
                while(
$row mysql_fetch_array($q)) {    
                
$materias_usuario[] = $row;     
                } 


                
//traigo todas las materias para colocarlas en un CHECKOX
                
$s2 "SELECT idmateria, materias FROM materias";
                
$q2 mysql_query($s2$conn);
                
// creo el array de todas las materias para comparar
                
$todas_las_materias= array();
                while (
$r2 mysql_fetch_array($q2)) {
                  
$todas_las_materias[]= $r2;
                }

                
// bucleo para traer todas las materias en un checkbox
                
for($j=0;$j<count($todas_las_materias);$j++){
                  
                     
?>
                  <!--Inicio LABEL-->
                  <label>
                    <input type="checkbox" name="materias[]" value="<?php echo $todas_las_materias[$j][0]; ?>
                    <?php
                    
// bucleo para buscar todas las materias del usuario
                    // dentro de todas las materias existentes 
                    
for($i=0;$i<count($materias_usuario);$i++){
                      if(
$materias_usuario[$i][0]==$todas_las_materias[$j][0]){
                        echo 
'checked';
                      }
                    }
                    
?> 
                    /><!--cierre de checkbox-->
                    <?php echo $todas_las_materias[$j][1]; ?>
                  </label><br />
                  <!--Fin LABEL-->
                  <?php
                   
                  
}
              
               
              
?>
Saludos
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...

Última edición por loncho_rojas; 09/03/2016 a las 20:46 Razón: Solución hallada