Foros del Web » Programando para Internet » PHP »

Varios Checkbox y base de datos

Estas en el tema de Varios Checkbox y base de datos en el foro de PHP en Foros del Web. Tengo un formulario con varios checkbox, cada uno de los cuales es una jornada (indiferente, completa, parcial, por horas, fines de semana). Un usuario puede ...
  #1 (permalink)  
Antiguo 24/08/2009, 12:24
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Varios Checkbox y base de datos

Tengo un formulario con varios checkbox, cada uno de los cuales es una jornada (indiferente, completa, parcial, por horas, fines de semana).

Un usuario puede seleccionar 1 ó varios de ellos.

Se insertan en la base de datos.

Hasta ahí todo correcto.
Pero luego tienen la posibilidad de modificarlo, así que lo que quiero es que se muestren los checkbox marcados según lo que hay introducido en la base de datos.

Cómo se haría?

GRACIAS!
  #2 (permalink)  
Antiguo 24/08/2009, 12:43
 
Fecha de Ingreso: diciembre-2008
Mensajes: 122
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Varios Checkbox y base de datos

pues facil cuando el quiera modificar al check box dale como dato inicial el de la base de datos seria algo asi.

<label>
<select name="select" id="select">
<option value="<? echo $rs['indiferente'];?>" selected="selected"><? echo $rs['indiferente'];?></option>
<option value="lalala">lalalala</option>
</select>
</label>
  #3 (permalink)  
Antiguo 25/08/2009, 09:11
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Varios Checkbox y base de datos

Pero con el código que me has dado se genera una lista/menu.

Lo que yo quiero es que el checkbox esté marcado si está registrado en la base de datos...
  #4 (permalink)  
Antiguo 25/08/2009, 09:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Varios Checkbox y base de datos

Agregale el atributo checked="checked" al checkbox que quieras marcar.

Saludos.
  #5 (permalink)  
Antiguo 25/08/2009, 09:13
 
Fecha de Ingreso: julio-2004
Mensajes: 323
Antigüedad: 19 años, 9 meses
Puntos: 1
Respuesta: Varios Checkbox y base de datos

no uses checkbox, usa combobox
  #6 (permalink)  
Antiguo 25/08/2009, 09:15
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Varios Checkbox y base de datos

GatorV, pero no quiero que esté marcado desde el principio, primero mira en la base de datos y si eso lo marca...
  #7 (permalink)  
Antiguo 25/08/2009, 09:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Varios Checkbox y base de datos

Por eso, necesitas comprobar al imprimir, por ejemplo supongamos que en $valor tienes el valor de la base de datos, en ese caso compruebas:
Código PHP:
Ver original
  1. <input type="checkbox" name="check1" value="foo" <?php if ($valor == 'foo') { ?>checked="checked"<?php } ?> />

Saludos.
  #8 (permalink)  
Antiguo 25/08/2009, 09:35
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Varios Checkbox y base de datos

Buff... a ver, yo con este código saco los valores de los checkbox almacenados:

Código:
mysql_select_db($bd, $conexion);
$query_jornadaUsuario = "SELECT * FROM candidatojornada WHERE candidatojornada.nifCandidato='{$_GET['Nif']}'";
$jornadaUsuario = mysql_query($query_jornadaUsuario, $conexion) or die(mysql_error());
$row_jornadaUsuario = mysql_fetch_assoc($jornadaUsuario);
Los valores son:

Indiferente -> 1
Completa -> 2
Parcial ->3
Por horas ->4
Fines de semana -> 5

De la consulta anterior nos sale los valores: 2 y 3

Cómo lo pondría?

<?php if ($row_jornadaUsuario == '2') { ?>checked="checked"<?php } ?>

(bueno, esto no porque no funciona...)
  #9 (permalink)  
Antiguo 25/08/2009, 12:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Varios Checkbox y base de datos

$row_jornadaUsuario es un array (resultado de mysql_fetch_assoc) por lo que tienes que comparar el indice con el valor.

Haz un var_dump($row_jornadaUsuario) para que veas que datos tiene.

Saludos.
  #10 (permalink)  
Antiguo 25/08/2009, 12:38
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Varios Checkbox y base de datos

Ya casi me sale, he puesto, por ejemplo:

<input type="checkbox" name="fines" value="5" id="fines" <?php if ($row_jornadaUsuario['idJornada'] == '5') { ?>checked="checked"<?php } ?> />

Ahora el problema es que solo me marca uno de todos los checkbox cuando pueden ser varios...
  #11 (permalink)  
Antiguo 25/08/2009, 12:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Varios Checkbox y base de datos

Si almacenas varios valores en tu BDD, vas a tener que realizar un ciclo while() o for() para ir ciclando por todos los resultados e ir imprimiendo los valores.

Saludos.
  #12 (permalink)  
Antiguo 25/08/2009, 12:51
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Varios Checkbox y base de datos

Ya lo he intentado, pero se me bloquea el ordenador... así que no sé cómo hay que hacerlo...
  #13 (permalink)  
Antiguo 25/08/2009, 16:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Varios Checkbox y base de datos

Expon el código como lo implementas.

Saludos.
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 07:33.