Foros del Web » Programando para Internet » PHP »

cargar checkbox activados desde mysql

Estas en el tema de cargar checkbox activados desde mysql en el foro de PHP en Foros del Web. hola, una pregunta, resulta que tengo una base de datos en la que tengo una tabla de elementos y una tabla de entregas, en el ...
  #1 (permalink)  
Antiguo 21/10/2010, 13:25
Avatar de blonder413  
Fecha de Ingreso: octubre-2010
Mensajes: 58
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta cargar checkbox activados desde mysql

hola, una pregunta, resulta que tengo una base de datos en la que tengo una tabla de elementos y una tabla de entregas, en el campo material puede ir mas de un elemento. ¿como hago para cargar un formulario trayendo todos los elementos pero que queden verificados los que se encuentren en la tabla de entregas? me explico.

ELEMENTOS ENTREGAS
casco 1 casco
botas
guante

al cargar en un formulario la entrega 1 debe mostrarme todos los elementos en checkbox, pero casco debe estar con verificación.

Con el siguiente codigo cargo todos los datos de la tabla elementos.

Código:
$sql = "SELECT * FROM elementos ORDER BY nombre";
$res = mysql_query($sql,$con);
$c=0;
while($row = mysql_fetch_assoc($res)){
         $vector[$c] = $row['nombre'];
         $c++;
}
for($f=0;$f<$c;$f++){
?>
 <input type="checkbox"  value="<?php echo $vector[$f] ?>" name="material[]"/>
}
  #2 (permalink)  
Antiguo 21/10/2010, 14:44
Avatar de C2am  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 2.005
Antigüedad: 15 años, 3 meses
Puntos: 306
Respuesta: cargar checkbox activados desde mysql

Para activar el checkbox debes incluir lo siguiente : checked="CHECKED" osea:

<input type="checkbox" value="<?php echo $vector[$f] ?>" name="material[]" checked="CHECKED" />

Claro que lo debes hacer mediante alguna variable porque si no se te activaría el último.
Es decir si esta entregado el elemento, entonces que se imprima el checked, en caso contrario no.
Yo lo he hecho mediante if pero veo que tu nivel de php es mayor a la novata del mío.

Saludos
__________________
El mundo nada puede contra un hombre que canta en la miseria.
-- Ernesto Sábato--
  #3 (permalink)  
Antiguo 21/10/2010, 15:29
Avatar de blonder413  
Fecha de Ingreso: octubre-2010
Mensajes: 58
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: cargar checkbox activados desde mysql

el problema es que en la tabla entregasdiarias tengo varios materiales, entonces no se que comparador se pueda poner en el if, con == no funciona - si existiera un like por ejemplo - o como obtener cada dato en un vector o variable diferente para comparar.
  #4 (permalink)  
Antiguo 21/10/2010, 15:33
(Desactivado)
 
Fecha de Ingreso: agosto-2009
Mensajes: 37
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: cargar checkbox activados desde mysql

Con el siguiente codigo cargo todos los datos de la tabla elementos.

Código:
$sql = "SELECT * FROM elementos ORDER BY nombre";
$res = mysql_query($sql,$con);
$c=0;
while($row = mysql_fetch_assoc($res)){
         $vector[$c] = $row['nombre'];
         $c++;
}
for($f=0;$f<$c;$f++){
?>
 <input type="checkbox"  value="<?php echo $vector[$f] ?>" name="material[]"/>
}
[/QUOTE]



tu lo que quiers es que aparesca el check box activado si es que se selecciono anterior mente veerdad para eso yo lo ago de sta forma siguiendo tu ejemplo

Código:
$sql = "SELECT * FROM elementos ORDER BY nombre";
$res = mysql_query($sql,$con);
$c=0;
while($row = mysql_fetch_assoc($res)){
         $vector[$c] = $row['nombre'];
         $c++;
}
for($f=0;$f<$c;$f++){
?>
if($vector[$f]!=0){
 <input type="checkbox"  value="<?php echo $vector[$f] ?>" name="material[]"  checked="checked"/>
}else{
<input type="checkbox"  value="<?php echo $vector[$f] ?>" name="material[]"  />
}
}
[/QUOTE]

mira asi lo ago yo, esto solamente es una idea lo que ago es comparar si el registro que estoy opteniendo de la base de datos no esta vacio en tonces el campo aparece activo delo contrario aparece desactivado
  #5 (permalink)  
Antiguo 21/10/2010, 15:34
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: cargar checkbox activados desde mysql

deberias tener un campo en la tabla donde indique que esta entregado, luego el if lo haces a ese campo para usar el checked
  #6 (permalink)  
Antiguo 21/10/2010, 15:38
Avatar de C2am  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 2.005
Antigüedad: 15 años, 3 meses
Puntos: 306
Respuesta: cargar checkbox activados desde mysql

No llego a comprender
Como vinculas la tabla elementos con la tabla entregas

Mejor muestra la estructura de tus tablas porque supongo que debe haber algun punto en comun entre ambas.
Si no es así, pues, deberías repensar las tablas.
__________________
El mundo nada puede contra un hombre que canta en la miseria.
-- Ernesto Sábato--
  #7 (permalink)  
Antiguo 21/10/2010, 15:42
(Desactivado)
 
Fecha de Ingreso: agosto-2009
Mensajes: 37
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: cargar checkbox activados desde mysql

creo que se espanto ya no regreso
  #8 (permalink)  
Antiguo 21/10/2010, 15:55
Avatar de blonder413  
Fecha de Ingreso: octubre-2010
Mensajes: 58
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: cargar checkbox activados desde mysql

tengo las sgtes tablas:

ELEMENTOS
idelemento,nombreelemento

ENTREGAS
idempleado,nombreempleado,nombreelemento

como son varios los elementos que se entregan, la tabla entregasdiarias podria tener algo asi

idempleado = 1
nombreempelado = juan
nombreelemento = casco, botas, guante

es mas o menos lo que dice trinipau

Cita:
Iniciado por trinipau Ver Mensaje
Con el siguiente codigo cargo todos los datos de la tabla elementos.

Código:
$sql = "SELECT * FROM elementos ORDER BY nombre";
$res = mysql_query($sql,$con);
$c=0;
while($row = mysql_fetch_assoc($res)){
         $vector[$c] = $row['nombre'];
         $c++;
}
for($f=0;$f<$c;$f++){
?>
 <input type="checkbox"  value="<?php echo $vector[$f] ?>" name="material[]"/>
}


tu lo que quiers es que aparesca el check box activado si es que se selecciono anterior mente veerdad para eso yo lo ago de sta forma siguiendo tu ejemplo

Código:
$sql = "SELECT * FROM elementos ORDER BY nombre";
$res = mysql_query($sql,$con);
$c=0;
while($row = mysql_fetch_assoc($res)){
         $vector[$c] = $row['nombre'];
         $c++;
}
for($f=0;$f<$c;$f++){
?>
if($vector[$f]!=0){
 <input type="checkbox"  value="<?php echo $vector[$f] ?>" name="material[]"  checked="checked"/>
}else{
<input type="checkbox"  value="<?php echo $vector[$f] ?>" name="material[]"  />
}
}
[/QUOTE]

mira asi lo ago yo, esto solamente es una idea lo que ago es comparar si el registro que estoy opteniendo de la base de datos no esta vacio en tonces el campo aparece activo delo contrario aparece desactivado[/QUOTE]
  #9 (permalink)  
Antiguo 21/10/2010, 16:41
Avatar de C2am  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 2.005
Antigüedad: 15 años, 3 meses
Puntos: 306
Respuesta: cargar checkbox activados desde mysql

Deberías traer la variable "nombreelemento = casco, botas, guante" desde la tabla entregas, y explotarla para poder hacer una comparación con el nombreelemento de la tabla elementos.

Esto suponiendo que el campo nombrelemento de la tabla entrega no se carga manualmente sino que se elije de un menu. digo esto porque ante un error (bota en vez de botas por ej) dicha comparación no funcionará.

saludos
__________________
El mundo nada puede contra un hombre que canta en la miseria.
-- Ernesto Sábato--

Etiquetas: checkbox, php-mysql, 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 15:30.