Foros del Web » Programando para Internet » PHP »

Mostrar checbox de acuerdo a su valor en mi Bd

Estas en el tema de Mostrar checbox de acuerdo a su valor en mi Bd en el foro de PHP en Foros del Web. Hola a todos estoy trabajando en formulario donde tengo varios checbox si el usuario lo activa manda a insertar 1 si no lo marca se ...
  #1 (permalink)  
Antiguo 04/09/2012, 11:38
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 5 meses
Puntos: 12
Mostrar checbox de acuerdo a su valor en mi Bd

Hola a todos estoy trabajando en formulario donde tengo varios checbox
si el usuario lo activa manda a insertar 1 si no lo marca se queda en 0... hasta ahi todo bien...
Ahoralo que estoy tratando de hacer es mostrar el estado de mi Bd en un nuevo check osea si en mi base tiene 0 mostrarlo desactivado en caso contrario mostrarlo activo...


Tengo lo siguiente

Código PHP:
mysql_select_db($database_connection$connection);
$consulta "SELECT Parcial1 FROM criterios_lic ";
$resultado mysql_query($consulta$connection);
 if (
$resultado !== false) {
    
$datos mysql_fetch_assoc$resultado );
}
 
//Suponiendo que el campo que representa el checkbox es un entero entre 1 y 0
if ($datos['aplica'] === '1') {
   
$checked 'checked="checked" ';
} else {
    
$checked ' ';

<input type="checkbox" name="aplica" value="<?php echo $checked ?>" <label for="datoActivo">Aplica</label>

Agradesco su ayuda
  #2 (permalink)  
Antiguo 04/09/2012, 11:51
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

el atributo checked no es como una etiqueta, al igual que disabled va solo, así que debes cambiar:

$checked = 'checked="checked" ';

$checked = 'checked ';
  #3 (permalink)  
Antiguo 04/09/2012, 11:57
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 5 meses
Puntos: 12
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

Cita:
Iniciado por ocp001a Ver Mensaje
el atributo checked no es como una etiqueta, al igual que disabled va solo, así que debes cambiar:

$checked = 'checked="checked" ';

$checked = 'checked ';
Gracias pero sigue sin marcarlo
  #4 (permalink)  
Antiguo 04/09/2012, 12:04
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 10 meses
Puntos: 53
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

primero verifica como se usa el atributo checked

es decir escribelo tal cual


<input type="checkbox" checked="checked"/>
ó
<input type="checkbox" checked/>


una vez indentificado puedes hacer tu condicion
<?php
if($valor==1)
{$checked ="la sintaxis que necesites";}
elseif($valor==0)
{
$checked=0;}

?><input type="checkbox" <?php echo $checked;?>><?php
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #5 (permalink)  
Antiguo 04/09/2012, 12:09
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

Bueno, veo que además haces la comparación a nivel de bit:

$datos['aplica'] === '1'

si $datos['aplica'] es numérica, creo que ahí habrá un problema.

$datos['aplica'] == 1
  #6 (permalink)  
Antiguo 04/09/2012, 12:09
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 5 meses
Puntos: 12
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

Cita:
Iniciado por PIRRUMAN Ver Mensaje
primero verifica como se usa el atributo checked

es decir escribelo tal cual


<input type="checkbox" checked="checked"/>
ó
<input type="checkbox" checked/>


una vez indentificado puedes hacer tu condicion
<?php
if($valor==1)
{$checked ="la sintaxis que necesites";}
elseif($valor==0)
{
$checked=0;}

?><input type="checkbox" <?php echo $checked;?>><?php
Es asi <input type="checkbox" checked/>
pero no te entendi mucho
  #7 (permalink)  
Antiguo 04/09/2012, 12:12
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 10 meses
Puntos: 53
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

has esto entonces

$valor=1;//define el valor tu
if($valor==1)
{$checked ="checked";}
elseif($valor==0)
{
$checked=0;}
?><input type="checkbox" <?php echo $checked;?>><?php
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #8 (permalink)  
Antiguo 04/09/2012, 12:18
Avatar de fishdesign  
Fecha de Ingreso: abril-2011
Ubicación: Málaga
Mensajes: 389
Antigüedad: 13 años, 8 meses
Puntos: 95
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

Código PHP:
Ver original
  1. <input type="checkbox" <?php echo ($value == 1) ? 'checked' : '' ?> />

Fácil, no?
__________________
Web Designer.
Themes-Up!, próximamente
  #9 (permalink)  
Antiguo 04/09/2012, 12:19
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 5 meses
Puntos: 12
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

Lo tengo asi
Código PHP:
mysql_select_db($database_connection$connection);
$consulta "SELECT Parcial1 FROM criterios_lic ";
$resultado mysql_query($consulta$connection);
 if (
$resultado !== false) {
    
$datos mysql_fetch_assoc$resultado );
}
 
$valor=1;
if(
$valor==1)
{
$checked ='checked';}
elseif(
$valor==0)
{
$checked=0;} 
<input type="checkbox" value="<?php echo $checked;?>" Dato Activo</label>
Pero no creo a verlo hecho bien
  #10 (permalink)  
Antiguo 04/09/2012, 12:27
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

De la forma en que te indica fishdesign es correcto, aunque algunas personas (yo entre ellas) suelen tener dificultades al interpretar estas condicionales.

en tu código te hago unas observaciones


$valor=1;
if($valor==1) //valor 1 siempre será 1 si previamente (linea anterior) así lo asignas
{$checked ='checked';}
elseif($valor==0)
{
$checked=0;} //no necesitas poner checked como 0

retomando tu primer ejemplo:

if ($datos['aplica'] == 1) {
$checked = 'checked="checked" ';
} else {
$checked = ' ';
}
  #11 (permalink)  
Antiguo 04/09/2012, 12:32
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 5 meses
Puntos: 12
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

Cita:
Iniciado por ocp001a Ver Mensaje
De la forma en que te indica fishdesign es correcto, aunque algunas personas (yo entre ellas) suelen tener dificultades al interpretar estas condicionales.

en tu código te hago unas observaciones


$valor=1;
if($valor==1) //valor 1 siempre será 1 si previamente (linea anterior) así lo asignas
{$checked ='checked';}
elseif($valor==0)
{
$checked=0;} //no necesitas poner checked como 0

retomando tu primer ejemplo:

if ($datos['aplica'] == 1) {
$checked = 'checked="checked" ';
} else {
$checked = ' ';
}
Gracias por la informacion un detalle mas e igual es donde me estoy equivocando
el checkbox <input type="checkbox" name="aplica"/>
que mas debe llevar????

<input type="checkbox" name="aplica" value="<?php echo $checked ?>"/>
  #12 (permalink)  
Antiguo 04/09/2012, 12:33
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 5 meses
Puntos: 12
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

mysql_select_db($database_connection, $connection);
$consulta = "SELECT Parcial1 FROM criterios_lic ";
$resultado = mysql_query($consulta, $connection);
if ($resultado !== false) {
$datos = mysql_fetch_assoc( $resultado );
}

if ($datos['aplica'] == 1) {
$checked = 'checked="checked" ';
} else {
$checked = ' ';
}


<input type="checkbox" name="aplica" value="<?php echo $checked ?>"/>


Lo tengo asi pero no me arroja nada
  #13 (permalink)  
Antiguo 04/09/2012, 12:35
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

Ah, es que si pones el checked dentro del value, no lo estarás haciendo bien.

<input type="checkbox" name="aplica" value="1" <?php echo $checked ?>"/>
  #14 (permalink)  
Antiguo 04/09/2012, 12:37
Avatar de fishdesign  
Fecha de Ingreso: abril-2011
Ubicación: Málaga
Mensajes: 389
Antigüedad: 13 años, 8 meses
Puntos: 95
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

Estás imprimiendo el valor de $checked en value, y así no funcionará en la vida.

Ponlo así:
Código HTML:
Ver original
  1. <input type="checkbox" name="aplica" <?php echo $checked ?> />
__________________
Web Designer.
Themes-Up!, próximamente
  #15 (permalink)  
Antiguo 04/09/2012, 12:37
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 5 meses
Puntos: 12
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

Cita:
Iniciado por ocp001a Ver Mensaje
Ah, es que si pones el checked dentro del value, no lo estarás haciendo bien.

<input type="checkbox" name="aplica" value="1" <?php echo $checked ?>"/>
Aun asi no me mostro nada, aclaro me debe mostrar el estado de acuerdo al valor que se inserto en mi Bd...
seguire checando
Gracias por su tiempo
  #16 (permalink)  
Antiguo 04/09/2012, 12:39
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

¿y verificaste qué valor se insertó en tu bd?
  #17 (permalink)  
Antiguo 04/09/2012, 12:42
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 5 meses
Puntos: 12
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

Cita:
Iniciado por ocp001a Ver Mensaje
¿y verificaste qué valor se insertó en tu bd?
Si tengo 1


ahora cambie esto if ($datos['aplica'] == 1) {
$checked = 'checked="checked" ';

por esto
if ($datos['aplica'] == 0) {
$checked = 'checked="checked" ';

Y sale marcado

Pero no se supone que si es 1 debe marcarse ???? o ya me enrede????

Gracias de nuevo
  #18 (permalink)  
Antiguo 04/09/2012, 12:44
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 5 meses
Puntos: 12
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

Cambiando a esto if ($datos['aplica'] == 0) {
$checked = 'checked="checked" ';

siempre me sale marcado aunque en mi base tenga 1
  #19 (permalink)  
Antiguo 04/09/2012, 13:13
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

bueno, es que como te decía, el atributo checked al igual que los atributos readonly y disabled no llevan el igual, puedes consultarlo en cualquier manual html.

tu html de salida debería verse así:

<input type="checkbox" value="1 (o lo que quieras que valga)" name="nombre" checked /> //si quieres que salga marcado
<input type="checkbox" value="1 (o lo que quieras que valga)" name="nombre" /> //si quieres que salga desmarcado
  #20 (permalink)  
Antiguo 04/09/2012, 13:17
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 10 meses
Puntos: 53
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

Cita:
Iniciado por Briss Ver Mensaje
mysql_select_db($database_connection, $connection);
$consulta = "SELECT Parcial1,aplica FROM criterios_lic ";//faltaba el campo aplica
$resultado = mysql_query($consulta, $connection);
if ($resultado !== false) {
$datos = mysql_fetch_assoc( $resultado );
}

if ($datos['aplica'] == 1) {
$checked = 'checked="checked" ';
} else {
$checked = ' ';
}


<input type="checkbox" name="aplica" <?php echo $checked ?>/>


Lo tengo asi pero no me arroja nada
en tu sql no estas llamando al campo aplica solo al Parcial1
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #21 (permalink)  
Antiguo 04/09/2012, 15:59
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 5 meses
Puntos: 12
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

Cita:
Iniciado por PIRRUMAN Ver Mensaje
en tu sql no estas llamando al campo aplica solo al Parcial1

Ni tengo campo aplica el que tengo es Parcial1 ahi se alojo mi resultado
  #22 (permalink)  
Antiguo 04/09/2012, 16:03
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 10 meses
Puntos: 53
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

supuse tenias el campo puesto que aqui lo mandas a llamar

$datos = mysql_fetch_assoc( $resultado );
if ($datos['aplica'] == 1) {

en todo caso seria $datos['Parcial1']

o de donde sacas $datos['aplica']?? que es aplica?
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #23 (permalink)  
Antiguo 04/09/2012, 16:09
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 5 meses
Puntos: 12
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

Cita:
Iniciado por PIRRUMAN Ver Mensaje
supuse tenias el campo puesto que aqui lo mandas a llamar

$datos = mysql_fetch_assoc( $resultado );
if ($datos['aplica'] == 1) {

en todo caso seria $datos['Parcial1']

o de donde sacas $datos['aplica']?? que es aplica?
Me guie en esto
Código PHP:
<?php
//Iniciamos la conexion
$conexion mysql_connect('localhost','root','');
 
//traemos todos los datos de un registro esto de acuerdo a un dato que se haya //ingresado por cualquier metodo
$consulta 'SELECT * FROM Tabla WHERE dato='.$varDato;
 
$resultado mysql_query($consulta$conexion);
 
if (
$resultado !== false) {
    
$datos mysql_fetch_assoc$resultado );
}
 
//Suponiendo que el campo que representa el checkbox es un entero entre 1 y 0
if ($datos['datoActivo'] === '1') {
   
$checked 'checked="checked" ';
} else {
    
$checked ' ';
}
 
//Supondiendo que ya se han procesado todos los demas datos y 
//esta listos para mostrarse en la página, ahora solo en el checkbox 
//de la página tenemos que imprimir la variable $checked
?>
Código HTML:
html>
<head>
<title>Pagina nueva</title>
</head>
<body>
<form>
<input type="checkbox" name="datoActivo" value="valor" <?php echo $checked ?><label for="datoActivo">Dato Activo</label>
</form>
</body>
</html> 

Asi que deduje q dato activo es el checkbox
  #24 (permalink)  
Antiguo 04/09/2012, 16:12
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 10 meses
Puntos: 53
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

utiliza el nombre del campo que almacena ese dato y previamente imprimelo par verificar que valor trae


print "EL VALOR ES: ".$datos['datoActivo']."<br>";
$datos['datoActivo']==1 //solo dos signos de igual

PD de donde sale el $datos['aplica']??
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #25 (permalink)  
Antiguo 04/09/2012, 16:44
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 5 meses
Puntos: 12
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

Cita:
Iniciado por PIRRUMAN Ver Mensaje
utiliza el nombre del campo que almacena ese dato y previamente imprimelo par verificar que valor trae


print "EL VALOR ES: ".$datos['datoActivo']."<br>";
$datos['datoActivo']==1 //solo dos signos de igual

PD de donde sale el $datos['aplica']??
Gracias por tu ayuda en serio...
pero ahora si ya me perdi xD

Código PHP:
mysql_select_db($database_connection$connection);
$query_parcial sprintf("SELECT * FROM criterios_lic");
$parcial mysql_query($query_parcial$connection) or die(mysql_error());
$row_parcialmysql_fetch_assoc($parcial);
$totalRows_parcialmysql_num_rows($parcial);

 if (
$parcial !== false) {
    
$query_parcial mysql_fetch_assoc$parcial );
}
 
if (
$query_parcial['Parcial1'] === 1) { 
$checked 'checked="checked" '
} else { 
$checked ' '
Aplica <input type="checkbox" name="Parcial1" <?php echo $checked ?>/> </h2>
<input type="text" value="<?php echo $row_parcial['Parcial1']; ?>/>
En el input si me arroja el uno q corresponde a Parcial1


Pero ya me enrede lo hice como lo postee y nada
  #26 (permalink)  
Antiguo 04/09/2012, 17:06
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 5 meses
Puntos: 12
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

Estoy probando ahora asi
<?
$comparacion=$_POST[resultado];
function checkbox_check ($valor,$comparacion) {
if ($valor=$comparacion) {
$tmp=" checked";
} else { $tmp=""; }
return $tmp;
}

?>



<input type="checkbox" name="NOMBRE" value="VALOR" <? echo checkbox_check ("VALOR",$VARIABLE); ?>>
<td><input type="text" name="resultado" value="<?php echo $row_parcial['Parcial1']; ?>";/></td>

Pero no me queda aun
  #27 (permalink)  
Antiguo 04/09/2012, 17:57
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 5 meses
Puntos: 12
Respuesta: Mostrar checbox de acuerdo a su valor en mi Bd

Por si alguien le sirve lo resolvi asi
Código PHP:
mysql_select_db($database_connection$connection);
$query_parcial sprintf("SELECT * FROM criterios_lic");
$parcial mysql_query($query_parcial$connection) or die(mysql_error());
$row_parcialmysql_fetch_assoc($parcial);
$totalRows_parcialmysql_num_rows($parcial); 
Código PHP:
 <? $aplica $row_parcial["Parcial2"];
 
$checked = ($aplica == 1)?" checked ":"";     ?>    
                             
 <label > Aplica:</label>
                                
<input type="checkbox" name="aplica" <?php echo $checked?>

Etiquetas: acuerdo, bd, formulario, mysql, usuarios
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 14:16.