Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/08/2005, 08:45
Avatar de Bytevamp
Bytevamp
 
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 7
recoger valores de chekboxes en php

hola de nuevo, sigo con problemas en los checkboxes, a saber:
tengo una pagina en la que desde una Base de Datos recojo los datos de un informe, si tiene documento asociado, aparece un chekbox con el nombre del documento, precedido de un campo para poner un documento diferente si fuese el caso esto lo hago con:
Código PHP:
 <input name="nombre1" type="file" class="casillas" size="30">
              <? if($row ['Documento']!= "") {
                echo 
'<input type="checkbox" name="checkbox"  checked >'.$row ['Nombre'];                
              }else{
                echo 
'<input type="hidden" name="checkbox" unchecked>'.$row ['Nombre'];
              };
?>
la funcionalidad es la siguiente, si hay documento el chebox aparece marcado, si no hay documento no aparece el checkbox, hasta aqui bien, si modifico cualquier dato, excepto el documento, funciona bien, pero aqui esta el problema, si desmarco el checkbox a secas, funciona bien, lo elimina de la Base de Datos, pero si lo desmarco e introduzco un archivo nuevo, no lo sube, da cadena vacia, igualmente, si no aparece el checkbox, por no haber documento, e introduzco un archivo nuevo, tampoco lo sube, sigue dando cadena vacia. En la pagina que se encargaria de recibir los datos tengo lo siguiente:
Código PHP:
$ssql "Update datos set Referencia='$ref', TituloCast='$titulo1', TituloIng='$titulo2', Descripcion='$descripcion1', DescripcionIng='$descripcion2', TipoDoc='$tipo', Fecha='$fecha', FechaIng='$fecha2' ";
    if (isset(
$_POST['checkbox']))
   {
           
$binario_contenido =$row['Documento'];
        
$binario_nombre=$row ['Nombre'];    
        
$binario_tipo=$row ['Mime'];

    }else{
        
$binario_nombre_temporal=$_FILES['nombre1']['tmp_name'] ;
    if (
$binario_nombre_temporal ==''){
        
$binario_contenido ='';
        
$binario_nombre='';    
        
$binario_tipo='';
    }else{
        
// leer del archvio temporal .. el binario subido.
        
$binario_contenido addslashes(fread(fopen($binario_nombre_temporal"rb"), filesize($binario_nombre_temporal)));
        
// Obtener del array FILES (superglobal) los datos del binario .. nombre, tabamo y tipo.
        
$binario_nombre=$_FILES['nombre1']['name'];
        
$binario_tipo=$_FILES['nombre1']['type']; 
    };
    };
    
$ssql .= ", Nombre='$binario_nombre', Documento='$binario_contenido', Mime='$binario_tipo'"
la verdad no se que pasa, y me esta volviendo loco.

Por cierto, para pasar los datos lo hago mediante $_GET, y lo paso, no directamente sino con javascript con la sentencia:
Código HTML:
fdocumento.action = "documento_update.php";
fdocumento.submit();
Siento todo este tocho, pero es que llevo un par de dias con esto y no soy capaz de resolverlo(aunque seguro es una tonteria), desde ya mi agradecimiento por la ayuda.