Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Bucle dentro de un bucle

Estas en el tema de Bucle dentro de un bucle en el foro de PHP en Foros del Web. Hola compañeros, a ver si me podéis ayudar con algo que seguro es fácil pero yo no lo veo. Tengo un valor en la base ...
  #1 (permalink)  
Antiguo 25/05/2015, 10:45
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 11 años
Puntos: 5
Bucle dentro de un bucle

Hola compañeros,

a ver si me podéis ayudar con algo que seguro es fácil pero yo no lo veo.

Tengo un valor en la base de datos que que son los ids de unos checkbox pero separados por comas, o sea algo así:

1,3,4,7,11

y lo que quiero es que al sacarlo de la base de datos se evalue si coincide el id para dejar marcado ese checkbox, esto sería en el momento que el usuario quiere ver lo que hizo.

he probado esto, aqui lo paso separado por comas directamente:

Código PHP:
Ver original
  1. $diasString = '1,4,7,8,11';
  2.         if($res){
  3.             while($row = $cnx->asociaFilas()){
  4.                 $pos = strpos($diasString, $row['idDia'] );
  5.                 if($pos === true  ){
  6.                     $check = ' checked="checked" ';
  7.                 }else{
  8.                     $check = '';
  9.                 }
  10.            
  11.                 $disponibilidad .= '
  12.                     <label class="labelRadio">'.$row['dia'].'</label>
  13.                     <input class="inputRadio" '.$check.' type="checkbox" name="dias[]" id="'.$row['dia'].'" value="'.$row['idDia'].'" onClick="">';
  14.                     unset($check);
  15.             }

Tambien he probado a pasarlo en vez de como string en modo array y usando un for:

Código PHP:
Ver original
  1. $numerDias = count($diasArray);
  2.         if($res){
  3.             while($row = $cnx->asociaFilas()){
  4.                 for($i = 0; $i <= $numerDias; $i++){
  5.                     if($diasArray[$i] == $row['idDia']){
  6.                         $check = ' checked="checked" ';
  7.  
  8.                     }else{
  9.                         $check = '';
  10.                     }
  11.                 }
  12.                 $disponibilidad .= '
  13.                     <label class="labelRadio">'.$row['dia'].'</label>
  14.                     <input class="inputRadio" '.$check.' type="checkbox" name="dias[]" id="'.$row['dia'].'" value="'.$row['idDia'].'" onClick="">';
  15.                     unset($check);
  16.             }

Y tambien así con un foreach y usando continue y sin usarlo:

Código PHP:
Ver original
  1. while($row = $cnx->asociaFilas()){
  2.                 foreach($diasArray as $a => $b){
  3.                     if($b == $row['idDia']){
  4.                         $check = ' checked="checked" ';
  5.                         continue;
  6.                     }else{
  7.                         $check = '';
  8.                     }
  9.                 }
  10.                 $disponibilidad .= '
  11.                     <label class="labelRadio">'.$row['dia'].'</label>
  12.                     <input class="inputRadio" '.$check.' type="checkbox" name="dias[]" id="'.$row['dia'].'" value="'.$row['idDia'].'" onClick="">';
  13.             }

Seguro es más fácil de lo que imagino pero estoy saturado ahora.

Muchas gracias por adelantado
  #2 (permalink)  
Antiguo 26/05/2015, 10:43
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 11 años
Puntos: 5
Respuesta: Bucle dentro de un bucle

Nadie?
  #3 (permalink)  
Antiguo 26/05/2015, 10:53
Avatar de jamie_88  
Fecha de Ingreso: abril-2011
Ubicación: Lima
Mensajes: 161
Antigüedad: 13 años
Puntos: 28
Respuesta: Bucle dentro de un bucle

guiandome de lo que has puesto puedes probar con...

Código PHP:
Ver original
  1. $diasString = '1,4,7,8,11';
  2. $idsArray = explode($diasString);
  3. while($row = $cnx->asociaFilas()){
  4.     $checked = '';
  5.     if (in_array($row['idDia'], $idsArray)) {
  6.         $checked = ' checked="checked" ';
  7.     }
  8.     ...
  9. }
  10. ...
  #4 (permalink)  
Antiguo 26/05/2015, 10:57
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 11 años
Puntos: 5
Respuesta: Bucle dentro de un bucle

Muchísimas gracias,

que sencillo era, estaba ciego con mis pruebas.

Gracias de nuevo
  #5 (permalink)  
Antiguo 26/05/2015, 11:06
Avatar de jamie_88  
Fecha de Ingreso: abril-2011
Ubicación: Lima
Mensajes: 161
Antigüedad: 13 años
Puntos: 28
Respuesta: Bucle dentro de un bucle

nos pasa a todos de cegarnos en cosas fáciles

Etiquetas: bucle
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:12.