Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/06/2012, 03:38
Bugger
 
Fecha de Ingreso: septiembre-2010
Ubicación: /home/
Mensajes: 103
Antigüedad: 14 años, 2 meses
Puntos: 17
asignar identificador a multiples campos tipo file

Hola

Tengo un formulario algo extenso, donde dentro del cual, hay un pequeño sub-apartado donde pueden insertar varias lineas

Código HTML:
Ver original
  1.                     <legend><strong>Medidas Correctoras</strong></legend>                  
  2.                     <table width="100%" border="0">
  3.                         <thead>
  4.                         <tr>
  5.                             <td>Descripci&oacute;n</td>
  6.                             <td colspan="3"><input type="text" id="descripcio_mesura_correctora" name="descripcio_mesura_correctora" size="80"/></td>
  7.                             <td rowspan="3"><input type="button" onclick="javascript:nova_mesura_correctora();" value=" A&ntilde;adir Medida Correctora"/></td>
  8.                         </tr>
  9.                         <tr>
  10.                             <td>Responsable</td>
  11.                             <td>
  12.                                 <select id="responsable_mesura_correctora" name="responsable_mesura_correctora" class="select_control">
  13.                                     <option value="0">Responsables</option>
  14.                                     <?php
  15.                                    $wresponsables    = " WHERE situacio=0";
  16.                                    $sql_responsables = $objResponsables->mostrar_responsables_w($wresponsables);
  17.                                     if(mysql_num_rows($sql_responsables)!=0){
  18.                                         while($rs_responsables = mysql_fetch_array($sql_responsables)){
  19.                                             ?>
  20.                                             <option value="<?php echo $rs_responsables['id_responsable'];?>"><?php echo $rs_responsables['nom'];?></option>
  21.                                             <?php
  22.                                        }// -- $rs_origen = mysql_fetch_array($sql_origen)){
  23.                                    }// -- if(mysql_num_rows($sql_origen)!=0){  
  24.                                    ?>
  25.                                 </select>
  26.                             </td>
  27.                             <td align="right">Fecha Aplicaci&oacute;n</td>                        
  28.                             <td align="left"><input type="text" id="data_mesura_correctora" name="data_mesura_correctora" value="" size="10" readonly="readonly"/></td>
  29.                         </tr>
  30.                         </thead>                        
  31.                     </table>
  32.                     <table id="mesura_correctora" width="100%" border="0">
  33.                         <thead>
  34.                         <tr>
  35.                             <td class="cap_taula_resultat" valign="top" align="center">Descripci&oacute;n</td>                            
  36.                             <td class="cap_taula_resultat" valign="top" align="center">Responsable</td>                            
  37.                             <td class="cap_taula_resultat" valign="top" align="center">Fecha Aplicaci&oacute;n</td>
  38.                             <td class="cap_taula_resultat" valign="top" align="center">Archivos/Imagenes&nbsp;</td>  
  39.                         </tr>
  40.                         </thead>  
  41.                         <tbody></tbody>
  42.                     </table>                    
  43.                 </fieldset>

y a mesura que las insertan uso el siguiente código (jquery) para mostrarlo sin refrescar la página

Código Javascript:
Ver original
  1. function nova_mesura_correctora(){
  2.         var valit = true;
  3.         if($("#descripcio_mesura_correctora").val() == ''){
  4.             alert('La descripcion de la Mesura Correctora es un campo obligatorio');
  5.             valit=false;
  6.         }
  7.         if(valit==true){
  8.             if($("#responsable_mesura_correctora").val() == 0){
  9.                 alert('El Responsable de la Mesura Correctora es un campo obligatorio');
  10.                 valit=false;
  11.             }
  12.         }
  13.         if(valit==true){        
  14.             if($("#data_mesura_correctora").val() == ''){
  15.                 alert('La Fecha de la Mesura Correctora es un campo obligatorio');
  16.                 valit=false;
  17.             }
  18.         }        
  19.         if(valit==true){
  20.             $.post("controls/afegir_mesura.php", {tipus: 'correctora', id_rel_control: $('#id_rel_control').attr('value'), descripcio_mesura_correctora: $("#descripcio_mesura_correctora").val(), responsable_mesura_correctora: $("#responsable_mesura_correctora").val(),data_mesura_correctora: $("#data_mesura_correctora").val()},
  21.             function(id_mesura_correctora){
  22.                 if(!isNaN(id_mesura_correctora)){
  23.                     var cadena;
  24.                     cadena = "<tr id=fila_mesura_correctora_"+id_mesura_correctora+">";        
  25.                     cadena = cadena + "<td>" + $("#descripcio_mesura_correctora").val() + "</td>";
  26.                     cadena = cadena + "<td>" + $('#responsable_mesura_correctora :selected').text() + "</td>";
  27.                     cadena = cadena + "<td>" + $("#data_mesura_correctora").val() + "</td>";    
  28.                     cadena = cadena + "<td><input type='file' name='adjunts_data_mesura_correctora["+id_mesura_correctora+"]' maxlength='5' accept='gif|jpg|pdf'/></td>";
  29.                     cadena = cadena + "<td><a onclick='eliminar_mesura_correctora("+id_mesura_correctora+");'><img src='lib/images/delete.png' class='img_delete'/></a></td>";
  30.                     $("#mesura_correctora tbody").append(cadena);
  31.                    
  32.                     $("#descripcio_mesura_correctora").val('');
  33.                     $('#responsable_mesura_correctora  option[value=0]').attr('selected',true);
  34.                     $("#data_mesura_correctora").val('');
  35.                    
  36.                 }else{
  37.                     alert("Error: "+id_mesura_correctora);
  38.                 }            
  39.             });
  40.         }        
  41.     }

el problema que tengo es que en cada linea que añade se le puede añadir un adjunto un vez haya insertado la linea, pero no ser como asignarle un id concreto para q luego cuando mande el formulario y suban los archivos pueda guardar el id de ese campo relacionado con el nombre del archivo subido-
he probado lo siguiente

<input type='file' name='adjunts_data_mesura_correctora["+id_mesura+']' maxlength='5' accept='gif|jpg|pdf'/>

pero cuando envio el form con todo y recibo estos valores, haciendo lo siguiente:

Código PHP:
if(isset($_FILES['adjunts_data_mesura_correctora'])){        
         
            echo 
"<pre>";
            
print_r($_FILES['adjunts_data_mesura_correctora']);
            echo 
"</pre>";


el valor id que le asigno no me aparece en ningún lugar... y no se me ocurre como hacer eso.

como puedo solucionarlo?

espero haber sido más o menos claro.

gracias de antemano!

saludos