Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/10/2011, 13:21
Rasec101
 
Fecha de Ingreso: diciembre-2009
Ubicación: Santiago, Chile
Mensajes: 143
Antigüedad: 14 años, 11 meses
Puntos: 2
Problema con checkbox dinamicos

Buenas tardes miren este es el asunto que me tiene buelto loco. Resulta que tengo en mi base de datos una tabla de categorias en la cual tendo 22 categorias almacenadas y con las categorias genero un grupo de checkbox 1 por categorias y al momento de registrarse un nuevo usuario selecciona las categorias de su interes. todo bien asta aca. las categorias seleccionadas por el usuario quedan almacenadas en el registro de la tabla usuarios;
usuarios grpCategorias nombre direccion telefono
224 2,3,4,5,6,7 XXXXXX XXXXXXX XXXXXX

el problema esta cuando el usuario ingresa a su cuenta para editar su perfil la idea es generar todos los checkbox y dejar checados los que selecciono el usuario con anterioridad.
con el sigiente codigo php genero los checkbox
Código PHP:
Ver original
  1. <?                         //aca se traen de la base los datos de la tabla usuario para checar el seleccionado
  2.              
  3.               $clUsuarios  = new Usuarios();
  4.              
  5.               $Res= $clUsuarios->UsuarioInfo($idCliente);
  6.              
  7.               if(count($Res) > 0)
  8.                
  9.                 {
  10.                
  11.                 foreach($Res as $cate)
  12.                
  13.                 {
  14.                                                        
  15.                
  16.                 $indicar = explode(",",$cate["grpCategorias"]);
  17.              
  18.               foreach($indicar as $campo)
  19.            
  20.             {
  21.        
  22.         // echo $campo;
  23.        
  24.         //aca se traen los datos de las categorias para generar los checkbox
  25.        
  26.         $clCategorias = new Categorias();
  27.        
  28.         $resCategorias = $clCategorias->ListarCategorias();
  29.                                              
  30.        
  31.          echo "<tr><td rowspan='".count($resCategorias)."' valign='top'> INTERESES</td>";
  32.          
  33.          if(count($resCategorias) > 0)
  34.            
  35.             {
  36.            
  37.             foreach($resCategorias as $cat)
  38.            
  39.             {
  40.                                                        
  41.            
  42.             $indi = $cat["idCategoria"];
  43.            
  44.             /*aca se generan los checkbox y dentro de cada checkbox va un   if ($campo == $indi) {echo "checked";} para dejar checado la seleccion del usuario*/
  45.            
  46.             echo"<td>
  47.            
  48.             <input id='checkbox' name='ArregloCategorias[]' type='checkbox' value='".$cat["idCategoria"]."'";?>
  49.            
  50.             <?  if ($campo == $indi) {echo "checked";}?><?php echo"></td><td>".$cat["nombre"]."</td></tr>";
  51.                                                        
  52.                                                        
  53.            
  54.            }
  55.            
  56.             }
  57.            
  58.             }
  59.            
  60.             }
  61.            
  62.             }
  63.  
  64. ?>
y dejo seleccionado el que el usuario checo con anterioridad pero el problema es que me duplica la cantidad de checkbox por la cantidad de opciones que selecciono el usuario es decir si el usuario selecciono dos checkbox con alteriosidad el codigo me genera dos veces la lista de checkbox y si selecciono las 22 categorias me genera 22 lista de checkbox.
espero aver esplicado bien el problema que tengo y que me puedan dar una idea de donde estoy fallando ya que esto me tiene buelto loco de antemano gracias