Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Activar input radio al crearlos dinámicamente

Estas en el tema de Activar input radio al crearlos dinámicamente en el foro de PHP en Foros del Web. Hola a todos. Estoy creando varios grupos de input radio leyendo una base de datos y quiero que el primero de cada grupo me quede ...
  #1 (permalink)  
Antiguo 13/03/2015, 02:41
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 3
Antigüedad: 9 años, 1 mes
Puntos: 0
Activar input radio al crearlos dinámicamente

Hola a todos.

Estoy creando varios grupos de input radio leyendo una base de datos y quiero que el primero de cada grupo me quede seleccionado (checked), pero sólo lo hace en el último grupo que crea. Luego el funcionamiento de cada grupo es independiente y funciona bien, pero sin haberme dejado ninguno seleccionado previamente.

Este es el código que utilizo para todo el form completo:

Código PHP:
                    <?php
                                  $resultado 
$conexion->query("SELECT * FROM intereses WHERE idUsuario='2' GROUP BY descripcion");
                                  while (
$fila=$resultado->fetch_assoc()){
                                      switch (
$fila["descripcion"])
                                      {
                                          case 
1:
                                              
$datos="Grupo 1";
                                              break;
                                          case 
2:
                                              
$datos="Grupo 2";
                                              break;
                                          case 
3:
                                              
$datos="Grupo 3";
                                              break;
                                      }
                        
?>

                  <div>
                            <h3><?php echo $datos?></h3>

                            <fieldset name="<?php echo $datos?>"data-role="controlgroup">
                              <?php
                                $resul2
=$conexion->query("SELECT * FROM intereses WHERE idUsuario='2' AND descripcion='".$fila['descripcion']."'");
                                
                                
//Aquí es donde intento que el primero de cada grupo esté activo
                                
$i='checked';
                                while (
$fila3=$resul2->fetch_assoc()) {?>
                                    <input type="radio" name="rboton[]" id="<?php echo $fila3["id"]?>" value="<?php echo $fila3["id"]?><?php echo $i?>/>
                                    
                                    <?php
                      
//Aquí lo desactivo para los siguientes
                                      
$i='';
                                    
?>
                                    
                                    <label for="<?php echo $fila3["id"]?>"><?php echo $fila3["nombre"]; $i='';?></label>
                                <?php ?>
                            </fieldset>
                  </div>
                   
                                  <?php }
                
$conexion->close();?>

               <input type="submit" value="Aceptar" data-icon="check" data-iconpos="right" data-theme="a"/>
                </div>
              </div>
              <?php ?>
      </form>
Es para jquery mobile, pero lo he intentado para web "normal" y me ocurre lo mismo.

Gracias
  #2 (permalink)  
Antiguo 13/03/2015, 10:03
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Activar input radio al crearlos dinámicamente

Bienvenido a FDW.

Utiliza una condición para que el 'checked' se imprima solo en el primer radiobutton, o bien imprime primero ese radiobutton y luego usa el bucle.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 13/03/2015, 10:32
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 3
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Activar input radio al crearlos dinámicamente

Hola Alexis, gracias por contestar.

El problema es que no sé cuantos grupos voy a tener, ni cuantos radiobutton va a tener cada grupo. Como lo he hecho $i tiene el valor "checked" cuando crea el primero de cada grupo, en los siguientes está vacío. Eso lo he comprobado porque he hecho un "echo $i" después de crear el radiobutton y me sale en pantalla "checked" después del primero de cada grupo (como debe ser) pero no aparece activo (como supongo que debería ser) y debajo de los siguientes de cada grupo no me sale nada, por lo tanto $i está vacío después de haber creado el primero. Lo curioso es que en el último grupo que me crea, el primer radiobutton sí me sale activado y es lo que me gustaría conseguir en todos los grupos de radiobutton.

Saludos
  #4 (permalink)  
Antiguo 14/03/2015, 16:17
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 3
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Activar input radio al crearlos dinámicamente

Bueno amigos, después de darle muchas vueltas a esto, yo mismo he dado con la solucion, que era un error.

El error estaba en el name de los inputs, que en todos tenía "name=rboton[]" para pasarlos luego como un array, lo he cambiado por "name=<?php echo $datos[/PHP]?>" y así cada grupo de botones tiene un nombre diferente y funciona perfectamente.

Así al enviar el formulario tendré que comprobar si se ha creado cada uno de los grupos, porque unos se pueden crear y otros no, pero como sólo van a ser 5 si se crean todos, tampoco es demasiado trabajo.

Saludos

Etiquetas: input, radio, select
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 20:10.