Foros del Web » Programando para Internet » PHP »

Usando uplodify para multiarchivo casi esta

Estas en el tema de Usando uplodify para multiarchivo casi esta en el foro de PHP en Foros del Web. Hola amigos como estais, Vereis estoy usando uplodify que es un script para subir archivos y demas la cosa es que he modificado para añadir ...
  #1 (permalink)  
Antiguo 17/01/2013, 16:09
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Usando uplodify para multiarchivo casi esta

Hola amigos como estais,

Vereis estoy usando uplodify que es un script para subir archivos y demas la cosa es que he modificado para añadir un campo textarea a cada imagen, la cosa es que al añadir otro campo text me guarda todas las descripciones como la primera osea iguales, creo quepuede estar en que al seleccionar las imagenes selecciono varias a la vez y los campos text tengo que añadirlos con un scritp al pulsar un bonton manualmente.

el codigo es este:


Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Multiple files upload in PHP with using Uploadify!</title>
  5.  
  6. <!-- CSS -->
  7. <link rel="stylesheet" href="uploadifyit/uploadify.css" type="text/css" />
  8.  
  9. <!-- Javascript -->
  10. <script type="text/javascript" src="uploadifyit/jquery-1.4.2.min.js"></script>
  11. <script type="text/javascript" src="uploadifyit/swfobject.js"></script>
  12. <script type="text/javascript" src="uploadifyit/jquery.uploadify.v2.1.4.min.js"></script>
  13. <script type="text/javascript">
  14.  
  15. $(document).ready(function() {
  16.    
  17.     //alert('I am ready to use uploadify!');
  18.     $("#file_upload").uploadify({
  19.         'uploader': 'uploadifyit/uploadify.swf',
  20.         'script': 'uploadifyit/uploadify.php',
  21.         'cancelImg': 'uploadifyit/cancel.png',
  22.         'folder': 'uploads',
  23.         'auto': false, // use for auto upload
  24.         'multi': true,
  25.         'queueSizeLimit': 4,
  26.         'onQueueFull': function(event, queueSizeLimit) {
  27.             alert("Please don't put anymore files in me! You can upload " + queueSizeLimit + " files at once");
  28.             return false;
  29.         },
  30.         'onComplete': function(event, ID, fileObj, response, data) {
  31.             // you can use here jQuery AJAX method to send info at server-side.
  32.             /*$.post("insert.php", { name: fileObj.name }, function(info) {
  33.                 alert(info); // alert UPLOADED FILE NAME
  34.             });*/
  35.            
  36.             $.post("insert.php",{name: fileObj.name, description: $("#description").val()}, function(info) {
  37.  
  38.             alert(info); // alert UPLOADED FILE NAME
  39.  
  40.     });        
  41.            
  42.            
  43.         }
  44.     });
  45.  
  46.  
  47.    
  48. });
  49.  
  50. </head>
  51.  
  52. <span style="font-color:#666666; font-size:10pt; font-weight:bold;">Subir imagenes:</span><div style="float:right;"><a href="#" onClick="addCampo()" class="Estilo_Boton">A&ntilde;adir otra imagen</a></div>
  53. <form id="form1" name="form1" action="">
  54. <div id="adjuntos" >
  55. <input type="file" id="file_upload" name="file_upload" /><br />
  56. File title: <br />
  57. File Description:<br />
  58. <textarea cols="30" rows="4" id="description" name="description[]"></textarea><br />
  59. <a href="javascript:$('#file_upload').uploadifyUpload();">Upload File</a>
  60. </div>
  61. </form>
  62. <!--
  63. <form id="form1" name="form1" action="">
  64. <input type="file" id="file_upload" name="file_upload" /><br />
  65. <a href="javascript:$('#file_upload').uploadifyUpload();">Upload File</a>
  66. </form>
  67. -->
  68.  
  69.  
  70. <script type="text/javascript">
  71.  
  72.    var numero = 0; //Esta es una variable de control para mantener nombres
  73.    var numerotext = 0;
  74.  
  75.             //diferentes de cada campo creado dinamicamente.
  76.    evento = function (evt) { //esta funcion nos devuelve el tipo de evento disparado
  77.    return (!evt) ? event : evt;
  78. }
  79.  
  80. //Aqui se hace lamagia... jejeje, esta funcion crea dinamicamente los nuevos campos file
  81.    addCampo = function () {
  82.      
  83. //Creamos un nuevo div para que contenga el nuevo campo
  84.    nDiv = document.createElement('div');
  85.      
  86.      //nDivtext = document.createElement('divtext');
  87. //con esto se establece la clase de la div
  88.    nDiv.className = 'Div_Archivo_galerias';
  89.      
  90.   // nDivtext.className = 'archivotext';     
  91. //este es el id de la div, aqui la utilidad de la variable numero
  92. //nos permite darle un id unico
  93.    nDiv.id = 'file' + (++numero);
  94.      
  95.   // nDivtext.id = 'filetext' + (++numerotext);  
  96. //creamos el input para el formulario:
  97. //   nCampotext = document.createElement('input');
  98. //   nCampotext.className = 'Inputs_class_galerias';
  99.    nCampo = document.createElement('textarea');
  100.    nCampo.className = '';
  101.      
  102. //le damos un nombre, es importante que lo nombren como vector, pues todos los campos
  103. //compartiran el nombre en un arreglo, asi es mas facil procesar posteriormente con php
  104.  //  nCampotext.name = 'title[]';
  105.    nCampo.name = 'description[]';
  106.      
  107. //Establecemos el tipo de campo
  108.  //  nCampotext.type = 'text';   
  109.    nCampo.type = 'textarea';     
  110.      
  111. //Ahora creamos un link para poder eliminar un campo que ya no deseemos
  112.    a = document.createElement('a');
  113.      
  114. //El link debe tener el mismo nombre de la div padre, para efectos de localizarla y eliminarla
  115.    a.name = nDiv.id ;
  116.  
  117. //Este link no debe ir a ningun lado
  118.    a.href = '#';
  119.      
  120. //Establecemos que dispare esta funcion en click
  121.    a.onclick = elimCamp;
  122.      
  123. //Con esto ponemos el texto del link
  124.      a.className = 'Texto_galerias_eliminar';  
  125.    a.innerHTML = 'Eliminar';
  126.      
  127. //Bien es el momento de integrar lo que hemos creado al documento,
  128. //primero usamos la función appendChild para adicionar el campo file nuevo
  129.  
  130.    nDiv.appendChild(nCampotext);     
  131.    nDiv.appendChild(nCampo);
  132.      
  133. //Adicionamos el Link
  134.    nDiv.appendChild(a);
  135.      
  136. //Ahora si recuerdan, en el html hay una div cuyo id es 'adjuntos', bien
  137. //con esta función obtenemos una referencia a ella para usar de nuevo appendChild
  138. //y adicionar la div que hemos creado, la cual contiene el campo file con su link de eliminación:
  139.  
  140.    container = document.getElementById('adjuntos');
  141.    containertext = document.getElementById('adjuntos');  
  142.    container.appendChild(nDiv);
  143.      container.appendChild(nDivtext);
  144. }
  145. //con esta función eliminamos el campo cuyo link de eliminación sea presionado
  146.  
  147.      elimCamp = function (evt){
  148.    evt = evento(evt);
  149.    nCampo = rObj(evt);
  150.      nCampotext = rObj(evt);
  151.    div = document.getElementById(nCampo.name);
  152.    divtext = document.getElementById(nCampotext.name);   
  153.    div.parentNode.removeChild(div);
  154.    divtext.parentNode.removeChild(divtext);
  155. }
  156. //con esta función recuperamos una instancia del objeto que disparo el evento
  157.  
  158.    rObj = function (evt) {
  159.    return evt.srcElement ?  evt.srcElement : evt.target;
  160. }
  161. </body>
  162. </html>



A ver si alguien puede orientarme un poquito de como se podria hacer, la idea es que al pulsar el link de añadir otra se añada otra otro boton para añadir otra imagen y su textarea correspondiente.

Bueno amigos un saludo y mil gracias

Etiquetas: formulario, html, usando
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 01:58.