Foros del Web » Creando para Internet » HTML »

Guardar valor seleccionado en checkbox

Estas en el tema de Guardar valor seleccionado en checkbox en el foro de HTML en Foros del Web. Hola a todos. Vengo de este tema: http://www.forosdelweb.com/f4/listar...ckbox-1023683/ El problema que tengo es el siguiente: Antes, en mi web, mostraba una serie de opciones de ...
  #1 (permalink)  
Antiguo 23/11/2012, 04:03
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 9 años, 4 meses
Puntos: 2
Guardar valor seleccionado en checkbox

Hola a todos.

Vengo de este tema: http://www.forosdelweb.com/f4/listar...ckbox-1023683/

El problema que tengo es el siguiente:

Antes, en mi web, mostraba una serie de opciones de una caracterísitca de un usuario en un despegable, mostrando de base aquella opción que estaba seleccionada. Si seleccionaba otra opción, ésta era la que se guardaba para el usuario

Código PHP:
<td>Estado de la candidatura:<br />
<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></td>
Ahora, lo que he hecho, es que en vez de un despegable, lo muestre en forma de checkbox:

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
}
?>
EL problema ahora es que no se cómo hacer para que cuando pinches en otra opción del checkbox, ésta sea la que se guarde para el usuario.

Si os fijáis, antes de hacer el cambio tenía esto:

Código PHP:
onchange="cambioEstado(this,'<?php echo $r_of["id"]; ?>')"
¿Alguna idea?
  #2 (permalink)  
Antiguo 23/11/2012, 07:18
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.485
Antigüedad: 19 años, 4 meses
Puntos: 2113
Respuesta: Guardar valor seleccionado en checkbox

Normalmente se envía por un formulario después de apretar el típico botón de enviar.

Por lo que veo, antes en vez de hacerlo de esa forma, se hacía mediante AJAX invocando una función llamada cambioEstado().

El problema que yo veo realmente es que deberías de aprender primero las cosas básicas antes de meterte en esos berengenales, porque vas a dar palos de ciego, uno detrás de otro, o siempre acudiendo a un foro para que te ayuden. Que está bien para salir del paso, pero siempre preguntar tiene que ser tedioso.

Ahora, si pasas de eso, lo que tendrías que hacer es buscar esa función cambioEstado() a ver qué es y cómo es lo que hacía para adaptarlo.
  #3 (permalink)  
Antiguo 23/11/2012, 22:37
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 14 años, 5 meses
Puntos: 1567
Respuesta: Guardar valor seleccionado en checkbox

@jonasgv

Tanto en este como en el otro post, venimos girando sobre lo mismo, y una vez más, todo muy confuso

Aclaremos conceptos, cuando se habla de opciones, hay dos categorñias básicas de las cuales partir

A. Opciones únicas
B. Opciones múltiples

analizá esto

Cita:
Antes, en mi web, mostraba una serie de opciones de una caracterísitca de un usuario en un despegable, mostrando de base aquella opción que estaba seleccionada
Cita:
EL problema ahora es que no se cómo hacer para que cuando pinches en otra opción del checkbox, ésta sea la que se guarde para el usuario.
Tomando tus 2 descripciones de la situación, te pongo un ejemplo básico

supongamos que un usuario tiene que elegir su color preferido entre estas opciones

rojo
verde
azul

pregunto
¿Puede un usuario tener 2 colores preferidos al mismo tiempo?

Si me baso en

Cita:
mostrando de base aquella opción que estaba seleccionada
como ponés "opción", (en singular!!!), tengo que entender que NO.
Entonces, con que objeto utilizar checkboxes?
Se debe de utilizar un select simple ó radiobuttons, capturar el checked o el selected ya te lo explicamos y para guardar el nuevo valor, con otro submit, ó con ajax si querés que se haga automáticamente al clickear en la opción que se elije.

En definitiva, si no tenés claro tu sistema, menos claro es intentar proponerte una solución. yo te propongo que lo hagas a la antigua, agarra papel y lápiz y diseña tu aplicación analizando las posibles acciones y sus reacciones, y recién después a trabajar sobre el código

Salu2
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 24/11/2012, 04:00
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 9 años, 4 meses
Puntos: 2
Respuesta: Guardar valor seleccionado en checkbox

Gracias @Bonez y @emprear por vuestras palabras.

La verdad, desconocía que esa diferencia entre el checkbox y el radiobutton

Básicamente, es lo que has dicho @emprear. Se muestran varios opciones y el usuario solo puede tener UNA opción.

Acabo de cambiar los checkbox por radiobutton.

La función que tenía antes para cambiar el estado el la siguiente:

Código PHP:
function cambioEstado(cual,id) {
    if (confirm("¿Seguro que desea modificar tu estado?")) {
        document.location = "priv_ficha.php?a=<?php echo $a?>&of="+ id +"&est="+ cual.value
    }
}
¿Cómo hago eso que dices "con otro submit, ó con ajax si querés que se haga automáticamente al clickear en la opción que se elige"?

Última edición por jonasgv; 25/11/2012 a las 10:27

Etiquetas: checkbox, input, php, seleccionado, tabla, formulario
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 17:39.