Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/05/2015, 10:45
Avatar de Benderzuelo
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