Foros del Web » Programando para Internet » PHP »

Checkbox On Off

Estas en el tema de Checkbox On Off en el foro de PHP en Foros del Web. Disculpen aqui tengo dudas he logrado procesar lo siguiente, en la tabla tengo un campo analizado que opuede ser 0 o 1, carga y creo ...
  #1 (permalink)  
Antiguo 31/05/2005, 10:48
 
Fecha de Ingreso: septiembre-2004
Mensajes: 91
Antigüedad: 19 años, 6 meses
Puntos: 0
Exclamación Checkbox On Off

Disculpen aqui tengo dudas he logrado procesar lo siguiente, en la tabla tengo un campo analizado que opuede ser 0 o 1, carga y creo un checkbox que si es 1 aparece chequeado, ahora si jago check en algunos de los check en blanco y hago click en un boton que logra procesar todos los check y hace un update, el problema viene cuando algun valor chequeado es deschequeado, no logro que lo actualice porque en el post solo envia los ckeck on, les agradecere su ayuda
  #2 (permalink)  
Antiguo 31/05/2005, 10:53
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola oblacionx

Prueba con algo así:
Código PHP:
if(!isset($_POST['tucheck']))
  
$chk=0;
else
  
$chk=$_POST['tucheck']; 
Saludos,
  #3 (permalink)  
Antiguo 31/05/2005, 12:43
 
Fecha de Ingreso: septiembre-2004
Mensajes: 91
Antigüedad: 19 años, 6 meses
Puntos: 0
disculpa aqui tucheck es el name o el value, aqui va el codigo que lee y hace la validacion,
Código PHP:
<?php
$consulta 
"SELECT DISTINCT CONCAT(inscripcion,telefono,estado_pedido) AS ID ";
$consulta .= "FROM pedidos_posible_fraude ";
$consulta .= "WHERE nombre <> 'nombre' AND zona <> 'zona' ORDER BY 1";
$w=0;
while(list(
$key$val) = each($_POST)) {            
$final=strlen($key);    
$key=substr($key,6,$final);     
$resultado mysql_query($consulta,$Sistema);        
if (
$val == 'on') {
$analizado=1;
} else {
$analizado=0;
}
while(
$registro mysql_fetch_array($resultado)){
switch (
$key) {                     
case 
$registro['ID']:
$consulta2 "UPDATE pedidos_posible_fraude SET analizado = '".$analizado;
$consulta2 .= "' WHERE CONCAT(inscripcion,telefono,estado_pedido) = '".$registro['ID']."' ; ";
$resultado2 mysql_query($consulta2,$Sistema);
continue;                     
}            
}            
mysql_free_result($resultado);    
}
?>
y el chech lo genero asi:

Código PHP:
while ($registro mysql_fetch_array($_pagi_result)){     
$nombrex ""
for (
$i=0;$i<20;$i++){                 
if (
$i == 18) { 
$nombre[] = $nombrex
echo 
"<td><center><input type=checkbox  name=".$nombre[$r]." value=".$nombrex." "
if(
$registro[$i] == 1) echo " checked"
echo 
"></center></td>"
} else { 
echo 
"<td> $registro[$i] </td>"
if ((
$i == 0) OR ($i == 2) OR ($i == 11)) {$nombrex .= $registro[$i];} 

}                     

sino que por ejemplo al procesar el $val me sale on y el key es un value='cadena de tres campos', te agradecere tu ayuda
  #4 (permalink)  
Antiguo 02/06/2005, 10:45
 
Fecha de Ingreso: septiembre-2004
Mensajes: 91
Antigüedad: 19 años, 6 meses
Puntos: 0
Exclamación checkbox on off

alguien que me pueda ayudar, la verdad solo consigo ver los chequeados, pero no puedo trabajar con los deschequeados
__________________
El amor es aquello que me da la fuerza para seguir, y ella es la bateria que Dios me dio para estar siempre activo. :corazon:
  #5 (permalink)  
Antiguo 02/06/2005, 11:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
De HTML y como funcionan los navegadores ... sólo los elementos checkbox seleccionados pasas a tu script PHP .. los que no seleccionas NO pasan ..

Así que lo normal en este caso es tener tu lista (en un array) de todos esos elementos de checkbox (variables que equivalen) para poder hacer la operación tipo: si sé los que están seleccionados .. y tengo el total .. sé los que no se seleccionaron.

Un saludo,
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 08:00.