Foros del Web » Creando para Internet » HTML »

Listar opciones checkbox

Estas en el tema de Listar opciones checkbox en el foro de HTML en Foros del Web. Buenos días. Tengo en una parte de la web una "caja" que al pulsar, aparecen las distintas opciones de una persona registrada: Código PHP: <td>Estado:<br />  ...
  #1 (permalink)  
Antiguo 19/11/2012, 04:40
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 12 años, 4 meses
Puntos: 2
Listar opciones checkbox

Buenos días.

Tengo en una parte de la web una "caja" que al pulsar, aparecen las distintas opciones de una persona registrada:

Código PHP:
<td>Estado:<br /> 
        <select name="estado" class="CajaTexto01" id="estado" style="width:180px;" onchange="cambioEstado(this,'<?php echo $r_of["id"]; ?>')">
Me gustaría que en vez de mostrarlo en una caja, te muestre todas las opciones (son 4) como un checkbox (poniendo como check aquella opción que ya estaba anteriormente)

He probado a poner:

Código PHP:
<td>Estado:<br /> 
        <select name="estado" class="checkbox" id="estado" style="width:180px;" onchange="cambioEstado(this,'<?php echo $r_of["id"]; ?>')">
pero no funciona.

¿Alguna idea de cómo hacerlo?

Un saludo
  #2 (permalink)  
Antiguo 19/11/2012, 04:51
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 4 meses
Puntos: 2114
Respuesta: Listar opciones checkbox

No estaría de más mirar algún tutorial o manual de HTML. No es que no funcione, de hecho seguramente funcione perfectamente. Ya que estás construyendo un select con una clase checkbox.

Lo que quieres hacer no es construir un select, ergo, no uses select.

Código HTML:
Ver original
  1. <input type="checkbox">

http://www.w3schools.com/html/html_forms.asp
  #3 (permalink)  
Antiguo 19/11/2012, 07:16
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 12 años, 4 meses
Puntos: 2
Respuesta: Listar opciones checkbox

Había mirado varios manuales pero en todos, había que escribir las opciones del checkbox "a pelo" (si tengo 4, pues 4 lineas, si tengo 15,...)

Entonces, si solo se puede hacer así, ¿cómo hago para que ponga como check aquella opción que ya estaba seleccionada antes de hacer el cambio?
  #4 (permalink)  
Antiguo 19/11/2012, 07:31
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 4 meses
Puntos: 2114
Respuesta: Listar opciones checkbox

Pues tendrás que usar en el lenguaje que uses de lado servidor un condicional —if-else. Que como ya has preguntado en PHP y tienes el hilo abierto ahí, tal vez debas reformular bien la pregunta por algo del tipo "¿Cómo dejo un checkbox seleccionado según las opciones del usuario?". Si es que realmente es eso lo que quieres hacer, porque no me queda del todo claro.

Para dejar seleccionado un checkbox, se hace así en HTML:
Código HTML:
Ver original
  1. <input type"checkbox" selected>

En HTML sí, hay que ponerlo todo a pelo, porque HTML no es un lenguaje de programación, sino de marcado. Como sabrás PHP genera HTML según se programe. Así que ese atributo selected tendrás que generarlo con un condicional en PHP para que sólo aparezca en el caso —condicional— que lo necesites.
  #5 (permalink)  
Antiguo 19/11/2012, 10:44
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Listar opciones checkbox

Cita:
Iniciado por Bonez Ver Mensaje
Pues tendrás que usar en el lenguaje que uses de lado servidor un condicional —if-else. Que como ya has preguntado en PHP y tienes el hilo abierto ahí, tal vez debas reformular bien la pregunta por algo del tipo "¿Cómo dejo un checkbox seleccionado según las opciones del usuario?". Si es que realmente es eso lo que quieres hacer, porque no me queda del todo claro.

Para dejar seleccionado un checkbox, se hace así en HTML:
Código HTML:
Ver original
  1. <input type"checkbox" selected>

En HTML sí, hay que ponerlo todo a pelo, porque HTML no es un lenguaje de programación, sino de marcado. Como sabrás PHP genera HTML según se programe. Así que ese atributo selected tendrás que generarlo con un condicional en PHP para que sólo aparezca en el caso —condicional— que lo necesites.
@Bonez, eso esta muy mal, si veo tus otras valiosas participaciones en el foro me inclino a creer que anoche no dormiste

te falta el igual y el atributo es checked
Código HTML:
Ver original
  1. <input type="checkbox" checked="checked" />

@jonasgv :
El titulo y tu código son una mezcla incompatible. Un checkbox ó un select?

Código HTML:
Ver original
  1. <select name="pais">
  2. <option value="">seleccionar país</option>
  3. <option value="arg" selected="selected">Argentina</option>
  4. <option value="esp">España</option>

ahi sí el atributo es selected

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 19/11/2012 a las 10:49
  #6 (permalink)  
Antiguo 19/11/2012, 13:45
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 12 años, 4 meses
Puntos: 2
Respuesta: Listar opciones checkbox

Gracias @emprear y @Bonez por la ayuda.

A lo mejor es que es algo imposible lo que pido, @emprear

Lo que quiero es que muestre todas las opciones en forma de checkbox (que tenga el botón para seleccionarlo al lado de cada opción) y a la vez, que aparezca marcado la opción que tenía antes marcada.

A ver si con un ejemplo...

Se carga la página, y están las opciones:

1. A
2. B
3. C
4. D (check)

Ahora, cambio el check a otra opción:

1. A
2. B (check)
3. C
4. D

Y cuando vuelva a la página, que aparezca así:

1. A
2. B (check)
3. C
4. D

No se si con este ejemplo aclaro lo que busco o ya termino de liarla
  #7 (permalink)  
Antiguo 19/11/2012, 13:54
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Listar opciones checkbox

Es que un caso asi el que aparezca marcado ó no un checkbox dependerá del valor asignado en alguna otra parte, una base de datos por ejemplo.
Eso se haría desde el mismo php

Código PHP:
Ver original
  1. if($algunacondicion == 'valor'){
  2. echo "<input.... checked='checked' />";
  3. }else{
  4. echo "<input.... />";
  5. }
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #8 (permalink)  
Antiguo 19/11/2012, 15:14
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 4 meses
Puntos: 2114
Respuesta: Listar opciones checkbox

Cita:
Iniciado por emprear Ver Mensaje
@Bonez, eso esta muy mal, si veo tus otras valiosas participaciones en el foro me inclino a creer que anoche no dormiste

te falta el igual y el atributo es checked
Código HTML:
Ver original
  1. <input type="checkbox" checked="checked" />
¿No vale decir que era para ver si andabas atento no? No sé, se me fue la cabeza. Igual me dejó loco el titulo y el mensaje.

Ahora, hasta donde sé no hace falta ponerlo como dices, las dos opciones son válidas. E incluso una tercera, más loca.
Código HTML:
Ver original
  1. <input type="checkbox" checked="">

Horrible, pero válido. Yo prefiero la forma simple, pero ya son manías de cada cual. Sinceramente desconozco si hay algún tipo de incompatibilidad con algún navegador en usar una u otra.

Que fallo el selected.
  #9 (permalink)  
Antiguo 19/11/2012, 15:31
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Listar opciones checkbox

Cita:
Iniciado por Bonez Ver Mensaje
¿No vale decir que era para ver si andabas atento no?
Yo sabía que algo te traías....

y checked="checked"
Después de tanto rompernos con el xhtml, no me van a hacer volver atrás !!!

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #10 (permalink)  
Antiguo 21/11/2012, 02:31
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 12 años, 4 meses
Puntos: 2
Respuesta: Listar opciones checkbox

Buenos días.

He intentado probar todo lo que se me ocurre y nada.

Os pongo el código completo de la consulta

Código PHP:
<select name="estado" class="cajaTexto01" id="estado" style="width:180px;" onchange="cambioEstado(this,'<?php echo $r_of["id"]; ?>')">
            <?php
            $sql 
"SELECT * FROM NOMBRETABLA WHERE activo=1 ORDER BY orden";
            
$q_est mysql_query($sql);
            while(
$r_est mysql_fetch_array($q_est)) {
            
?>
            <option value="<?php echo $r_est["id"]; ?>"<?php if($r_est["id"]==$r_of["estadoCand"]) { ?> selected="selected"<?php ?>><?php echo $r_est["nombre_"$idioma]; ?></option>
            <?php
            
}
            
?>
          </select>
Lo único que se me ocurre es poner a pelo las opciones que saldrían (que son 4, pero si algún día añado una mas a la tabla de la BD, tendría que cambiarla a pelo en este código) pero sigo sin saber como hacer para que aparezca con un check aquel que se encuentra activo en el momento de la consulta.

Gracias por vuestras respuestas.
  #11 (permalink)  
Antiguo 21/11/2012, 02:41
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 4 meses
Puntos: 2114
Respuesta: Listar opciones checkbox

Lo que tienes que comparar es si estadoCand es igual al valor que hayas elegido como verdadero.

Por ejemplo, si 1 es verdadero y 0 es falso, entonces indicas que si estadoCand es igual a 1 imprima checked="checked".
  #12 (permalink)  
Antiguo 21/11/2012, 04:39
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 12 años, 4 meses
Puntos: 2
Respuesta: Listar opciones checkbox

Cita:
Iniciado por Bonez Ver Mensaje
Lo que tienes que comparar es si estadoCand es igual al valor que hayas elegido como verdadero.

Por ejemplo, si 1 es verdadero y 0 es falso, entonces indicas que si estadoCand es igual a 1 imprima checked="checked".
Vamos, que la linea que debo de modificar es la siguiente, ¿no?

Código PHP:
<option value="<?php echo $r_est["id"]; ?>"<?php if($r_est["id"]==$r_of["estadoCand"]) { ?> selected="selected"<?php ?>><?php echo $r_est["nombre_"$idioma]; ?></option>
  #13 (permalink)  
Antiguo 23/11/2012, 03:45
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 12 años, 4 meses
Puntos: 2
Respuesta: Listar opciones checkbox

He conseguido la solución (gracias a vosotros, claro)

Código PHP:
<?php
$sql 
"SELECT * FROM NOMBRETABLA WHERE activo=1 ORDER BY orden";
$q_est mysql_query($sql);
while(
$r_est mysql_fetch_array($q_est)) {
    
?>
    <?php if($r_est["id"]==$r_of["estadoCand"]){
        
?> <input type="checkbox" checked="checked" value="<?php echo $r_est["id"]; ?>"> <?php echo $r_est["nombre_"$idioma]; ?><br>
    <?php
    
} else{
        
?> <input type="checkbox" value="<?php echo $r_est["id"]; ?>"> <?php echo $r_est["nombre_"$idioma]; ?><br>
    <?php
    
}
    
?>

<?php
}
?>
¿ Creéis que se puede "mejorar" el código?

Etiquetas: checkbox, opciones, php
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 13:45.