Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/06/2011, 03:19
Nexus10
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Problema con checkbox y su prop Checked

Cita:
Iniciado por peketin Ver Mensaje
ACA COMPRUEBO
Código PHP:
if(isset($_POST['carac'])){
    foreach(
$_POST['carac'] as $value){
        if (
$value==true){
            if (
$value==5){ echo'aca entro por nacional verdadero';}
                
$ok=true;
                
$yata=true;
                
$existente=mysql_query('Select idCaracteristica from Vehiculos_Caracteristicas where Vehiculos_Caracteristicas.idVehiculo='.$idveh.'');
                while((
$existe=mysql_fetch_row($existente)) and ($yata)){
                    if (
$value==$existe[0]){
                        
$yata=false;
                        
$ok=true;
                }
                else{
                    
$ok=false;
                }
                    }
                if (!(
$ok)){
                    @
mysql_query("Insert Into Vehiculos_Caracteristicas (`idVehiculoCaractesristica`,`idVehiculo`,`idCaracteristica`) values (null,'".$idveh."','".$value."')");    
                }
                        
            }
            else{
                
$existente=mysql_query('Select idCaracteristica from Vehiculos_Caracteristicas where Vehiculos_Caracteristicas.idVehiculo='.$idveh.'');
                while(
$existe=mysql_fetch_row($existente)){    
                    if (
$value==$existe[0]){
                        @
mysql_query('DELETE from Vehiculos_Caracteristicas where idVehiculo='.$idveh.' and idCaracteristica='.$value.'');
                    }
                }
            }
        }
    } 
Yo creo que tienes errores en la colocación de las llaves. Si están bien colocadas, dudo que el script funcione como quieres. Para empezar:

if ($value==true){

Esto se va a cumplir siempre porque el array $_POST['carac'] tiene valores ya que lo indicas aquí:

if(isset($_POST['carac'])){

por tanto en el else no va a entrar nunca. Siempre entrará en el if. El else correspondiente a ese if, según las llaves que tienes puestas, sería este:

Código PHP:
else{
                
$existente=mysql_query('Select idCaracteristica from Vehiculos_Caracteristicas where Vehiculos_Caracteristicas.idVehiculo='.$idveh.'');
                while(
$existe=mysql_fetch_row($existente)){    
                    if (
$value==$existe[0]){
                        @
mysql_query('DELETE from Vehiculos_Caracteristicas where idVehiculo='.$idveh.' and idCaracteristica='.$value.'');
                    }
                }
            } 
A este else, como digo no entraría nunca, según entiendo yo el script.

Comprueba que las llaves las tengas bien puestas, antes de nada.

Ten en cuenta que aquí abres y cierras llave:

if ($value==5){ echo'aca entro por nacional verdadero';}