Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Cambio estado checkbox en formulario creado con PHP

Estas en el tema de Cambio estado checkbox en formulario creado con PHP en el foro de PHP en Foros del Web. Saludos. Os cuento mi problema. En una página el usuario pulsa sobre botón "Cambiar datos". Mediante php le muestra un formulario con los datos que ...
  #1 (permalink)  
Antiguo 26/02/2017, 10:42
 
Fecha de Ingreso: noviembre-2014
Ubicación: Madrid
Mensajes: 81
Antigüedad: 9 años, 5 meses
Puntos: 1
Cambio estado checkbox en formulario creado con PHP

Saludos.
Os cuento mi problema. En una página el usuario pulsa sobre botón "Cambiar datos". Mediante php le muestra un formulario con los datos que hay en la base de datos (digo yo que ese formulario está "en el aire"). Uno de los datos es un checkbox que en la base de datos es un booleano. Al principio no mostraba el checkbox activado si su valor en la base de datos era 1.
Lo arreglé (con esta nada elegante solución):
Código:
	if($_SESSION["dual"] == 1){
		$dualidad= "value='1' checked='checked'";
	}else{
		$dualidad= "value='0'";
	}
Con ello si el valor en la base era 1 mostraba el checkbox activado, si era 0 lo mostraba desactivado.
Como el objetivo es cambiar datos, desactivo el checkbox yo a mano y pulso a enviar el formulario "en el aire"
Hago un debug de lo que pasa y si el checkbox estaba desactivado y lo activo yo pasa valor 0. Es decir lo que tenia. Si el checkbox estaba activado y lo desactivo no envia nada.
Creo que el código está bien (haciendo debug). Lo que creo que no está bien es cómo juego yo con el checkbox.
¿Alguna ayuda?
  #2 (permalink)  
Antiguo 26/02/2017, 11:13
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Cambio estado checkbox en formulario creado con PHP

Hola melkart239,

Yo creo que está (más o menos) bien.

Yo lo simplificaría, si el dato que traes de la base de datos es 1 checked, si es cero, nada, quiero decir que no necesitas la sesión para manejar eso.

Espero que se entienda.
  #3 (permalink)  
Antiguo 26/02/2017, 12:07
 
Fecha de Ingreso: noviembre-2014
Ubicación: Madrid
Mensajes: 81
Antigüedad: 9 años, 5 meses
Puntos: 1
Respuesta: Cambio estado checkbox en formulario creado con PHP

Gracias por tu respuesta
Es que se trata de poder cambiar datos, incluyende ese.
¿Me estoy preguntando si no me ahorraría ese lío cambiando el campo de la base de datos de booleano a ¿...? si quiero seguir usando un checkbox.
  #4 (permalink)  
Antiguo 26/02/2017, 14:50
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Cambio estado checkbox en formulario creado con PHP

Hola melkart239,

Vamos a suponer que el array de tu base de datos es $datos[]:

Código PHP:
Ver original
  1. <input id="dual" type="checkbox" name="dual[]" value="<?php echo datos['dual']; ?>">
  2.  
  3. //Y para recogerlo y cambiarlo si es el caso
  4. if ( isset() && !empty($_POST['dual']) ) {
  5. $dual = $_POST['dual'];
  6. }
  7.  
  8. //Y ya haces lo que tengas que hacer con él en la BBDD

Espero que así se entienda...
  #5 (permalink)  
Antiguo 26/02/2017, 18:15
 
Fecha de Ingreso: noviembre-2015
Mensajes: 231
Antigüedad: 8 años, 5 meses
Puntos: 86
Respuesta: Cambio estado checkbox en formulario creado con PHP

Si pretendes que el valor del checkbox cambie si se marcado o no, debes usar javascript.

Código Javascript:
Ver original
  1. <input onClick='function() {this.value= this.checked  ? 1 : 0}'>
  #6 (permalink)  
Antiguo 27/02/2017, 03:18
 
Fecha de Ingreso: noviembre-2014
Ubicación: Madrid
Mensajes: 81
Antigüedad: 9 años, 5 meses
Puntos: 1
Respuesta: Cambio estado checkbox en formulario creado con PHP

Gracias rbczgz. Si no me equivoco el código que me das es una mejora del mío. De ser así, no soluciona el problema. El problema es que habiendo volcado los datos que hay en la base en un formulario "intermedio", si el usuario clicka sobre el checkbox para cambiarlo, al envíar el formulario intermedio a la base, ese cambio no se registra.
La solucción de mpozo es buena, pero me preferiría resolverlo con php sólo.
Gracias mpozo.
  #7 (permalink)  
Antiguo 27/02/2017, 03:38
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Cambio estado checkbox en formulario creado con PHP

Hola melkart239,

¿Has revisado lo que te llega del formulario y como queda la query de actualización? Con ese código sí debería actualizarte correctamente, si no lo hace es porque hay algún otro problema.

Prueba depurando el código para ver qué tienes en cada momento.
  #8 (permalink)  
Antiguo 06/03/2017, 03:43
 
Fecha de Ingreso: noviembre-2014
Ubicación: Madrid
Mensajes: 81
Antigüedad: 9 años, 5 meses
Puntos: 1
Respuesta: Cambio estado checkbox en formulario creado con PHP

Si. Al cambiar el checkbox en el formulario intermedio no cambiaba el valor.
Lo resolví con onclick de java, parece ser la solución más fácil
Gracias

Etiquetas: checkbox, formulario-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 12:29.