Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/01/2012, 22:51
Avatar de Martriay
Martriay
 
Fecha de Ingreso: noviembre-2010
Mensajes: 80
Antigüedad: 13 años, 5 meses
Puntos: 5
php no reconoce input file dinamico

Feliz año nuevo!

Comento la situación: yo tengo un cuadro que se recupera por base de datos, al pie del cuadro hay un form para insertar una nueva entrada en ese cuadro, agrego también la opción de subir imágenes.
Lo que intento es que se puedan subir tantas imágenes como se quiera, con sólo apretar un botón agrego un nuevo input para file en el form ¿El problema? una vez enviado el formulario (se envía al mismo archivo .php) no me toma los input dinámicos.

Si agrego manualmente la cantidad de inputs que yo quiera me los toma todos, si utilizo los input generados por javascript, no me toma ninguno.

¿Alguna ayuda?

Código PHP:
<?
    
include ("mysqlconn.php"); 
    if(isset(
$_POST['add'])){
        
$padre            $_POST['parent'];
        
$name            $_POST['name'];
        
$procu            $_POST['procu'];
        
$prove          $_POST['prove'];
        
$foja              $_POST['foja'];
        
$observ           $_POST['observ'];
        foreach(
$_FILES as $k => $file){
        
$images[$k]['tmp']        = $file['tmp_name'];
        
$images[$k]['tipo']        = $file['type'];
        }
        if (empty(
$padre) || empty ($name) || empty($procu) || empty($observ)){
            if(empty(
$procu)) $msg.= "<br />Debe ingresar fecha de procuraci&oacute;n.";
            if(empty(
$observ)) $msg.= "<br />Debe ingresar observaci&oacute;n.";
        }else{
            
$qry "INSERT INTO cuadro VALUES (NULL,'".$prove."','".$procu."','".$observ."','".$foja."','".$padre."','".$name."','";
            if(!empty(
$_FILES)){
                foreach(
$images as $imagen){
                    
$sep=explode('image/',$imagen['tipo']);
                    
$tipo=$sep[1];
                    if(
$tipo == "gif" || $tipo == "pjpeg" || $tipo == "bmp" || $tipo == "jpg" || $tipo == "jpeg"){
                        
$str "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
                        
$cad ""
                        for(
$i=0;$i<6;$i++)$cad .= substr($str,rand(0,62),1);
                        
$cad .=time();
                        
$destino='subidas';
                        
$lugar=$destino.'/'.$cad.'.'.$tipo;
                        
move_uploaded_file($imagen['tmp'],$lugar);
                        
$qry .= '<a href="'.$lugar.'" target="_blank"><img src="images/img.png" /></a>';
                    }
                }
            }
            
$qry .= "')";
            
$rs mysql_query($qry);
            echo 
$qry;
        }
    }
    
$cau $_GET['cau'];
    
$qry_cuad "SELECT * FROM cuadro WHERE parent=".$cau." ORDER BY id DESC";
    
$rs_cuad mysql_query($qry_cuad);
    
$rw_cuad mysql_num_rows($rs_cuad);
    
$td 1;
    while (
$cuad mysql_fetch_object($rs_cuad)) {
    
$cuadro[$cuad->id]['parent'] = $cuad->parent
    
$cuadro[$cuad->id]['fecha_prov'] = $cuad->fecha_prov
    
$cuadro[$cuad->id]['fecha_procu'] = $cuad->fecha_procu
    
$cuadro[$cuad->id]['observ'] = $cuad->observ
    
$cuadro[$cuad->id]['foja'] = $cuad->foja
    
$cuadro[$cuad->id]['name'] = $cuad->name
    
$cuadro[$cuad->id]['image'] = $cuad->image
    }
    echo 
'<table id="cuadro"><tr class="thead"><td>Escrito<br />por:</td><td>Fecha de<br />procuracion:</td><td>Fecha de<br />proveido:</td><td>Foja:</td><td>Imagen:</td><td>Observaciones:</td></td>';
    if (
$rw_cuad != 0){
        foreach (
$cuadro as $cu){
            
$clase = ($td%=== 'uno' 'dos');
            echo 
'<tr class="',$clase,'"><td class="centrar">',$cu['name'],'</td><td class="centrar">',$cu['fecha_procu'],'</td><td class="centrar">',$cu['fecha_prov'],'</td><td class="centrar">',$cu['foja'],'</td><td>',$cu['image'],'</td><td>',$cu['observ'],'</td></tr>';
            
$td++;
        }
    }
    
?>
    <form id='formcuad' action='' method='POST' enctype='multipart/form-data'>
        <input type='hidden' name='add' />
        <input type='hidden' name='parent' value='<?=$cau?>' />
        <input type='hidden' name='parent' value='<?=$cau?>' />
        <input type='hidden' name='name' value='<?=$_SESSION['name']?>' />
            <tr>
                <td><input type='Submit' value='Guardar'></td>
                <td><input type='text' size='8' class="required" id="procu" name='procu' onkeyup=mascara(this,'/',patron,true) maxlength='10' /></td>
                <td><input type='text' size='8' name = 'prove' onkeyup=mascara(this,'/',patron,true) maxlength='10' /></td>
                <td><input type='text' size='4' name='foja' maxlength='4' /></td>
                <td><button type='button' id='addfile'>+</button></td>
                <td><textarea cols='30' rows='1' name='observ'></textarea></td>
            </tr>
        </table>
        <div id='files'>
        </div>
    </form>
    <?if(isset($msg))echo $msg,"<br />";?>
    <hr />
    <a href="" class='display'>Mostrar liquidacion</a><br />
    <hr />
    <?
    $form_qry 
"SELECT * FROM liquidacion WHERE parent=".$cau;
    
$form mysql_query($form_qry);
    
$form_nr mysql_num_rows($form);
    if(
$form_nr===|| isset($_GET['edit'])){
        include(
'formliq.php');
    }else{
        
$liqui mysql_fetch_assoc($form);
        
$nombre $liqui['nombre'];
        
$tipo $liqui['tipo'];
        
$decreto $liqui['decreto'];
        
$rub $liqui['rub'];
        
$senten1 $liqui['senten1'];
        
$senten2 $liqui['senten2'];
        
$entrega $liqui['entrega'];
        
$confec $liqui['confec'];
        
$presenta $liqui['presenta'];
        
$impugnaciones $liqui['impugnaciones'];
        include (
'cuadroliq.php');
    }
    
mysql_close($conn);
?>
<script type="text/javascript">
$().ready(function() {
    i=0;
    $(".display").toggle(
        function(){
            $("#liquidacion").slideDown('slow');
        },
        function(){
            $("#liquidacion").slideUp('slow');
        }
    );
    $("#addfile").click(
        function(){
            i++;
            $("#files").append("<input type='file' name='img"+i+"' /><br/>");
    });
});
</script>
En ese código no dejé ningún input-file, sólo se agregan mediante el botón +. Hay muchas cosas que no hacen a la cuestión, pero puse tooodo el archivo php para que sea más fácil encontrar errores (si encuentran errores o consejitos para mejorar el código, agradecido de los aportes).

En definitiva, el script en jQuery me agrega bien el html, pero php no los toma ¿ideas?

Saludos