Foros del Web » Programando para Internet » Jquery »

Guardar varios archivos dentro de un formulario

Estas en el tema de Guardar varios archivos dentro de un formulario en el foro de Jquery en Foros del Web. Hola ha todos como estan veran tengo el siguiente problema cuento con un formulario de registro de informacion que envió a través de ajax en ...
  #1 (permalink)  
Antiguo 05/08/2015, 10:19
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años, 1 mes
Puntos: 2
Guardar varios archivos dentro de un formulario

Hola ha todos como estan veran tengo el siguiente problema cuento con un formulario de registro de informacion que envió a través de ajax en el cual cargan archivos mi dilema esta como hago para guardar varios archivos enviándolos a travez de ajax aqui mi html
Código HTML:
Ver original
  1. <div class="modal fade" id="modal_seguimiento">
  2.     <div class="modal-dialog modal-lg">
  3.       <div class="modal-content">
  4.         <div class="modal-header">
  5.           <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  6.           <h4 class="modal-title">Nuevo Seguimiento</h4>
  7.         </div>
  8.         <div class="modal-body">
  9.           <div id="alerta-seguimiento"></div>
  10.           <form class="form-vertical" action="index.html" method="post" id="n_registro_seguimiento">
  11.             <div class="input-group" style="width:100%">
  12.               <label class="control-label label-seguimiento">Fecha Requerimiento</label>
  13.               <div class="col-md-4">
  14.                 <input type="text" class="form-control clsDatePicker" readonly="readonly" placeholder="Fecha Requerimiento" id="n_fecha_requerimiento_seguimiento">
  15.               </div>
  16.               <label class="control-label label-seguimiento">Fecha Ultimo Contacto/Cierre</label>
  17.               <div class="col-md-3">
  18.                 <input type="text" class="form-control clsDatePicker" readonly="readonly" placeholder="Fecha Ultimo Contacto" id="n_fecha_ultimo_contacto_seguimiento">
  19.               </div>
  20.             </div>
  21.             <div class="input-group" style="width:100%">
  22.               <label class="control-label label-seguimiento">Proximo Contacto</label>
  23.               <div class="col-md-4">
  24.                 <input type="text" class="form-control clsDatePicker" readonly="readonly" placeholder="Fecha Proximo Contacto" id="n_fecha_proximo_contacto_seguimiento">
  25.               </div>
  26.               <label class="control-label label-seguimiento">Cliente</label>
  27.               <div class="col-md-4">
  28.                 <input type="hidden" id="n_cliente_seguimiento_id">
  29.                 <input type="text" class="form-control" placeholder="Cliente" onkeyup="autocompletar()" id="n_cliente_seguimiento">
  30.               </div>
  31.               <ul id="cliente_id_lista" class="autocompletar"></ul>
  32.             </div>
  33.             <div class="input-group" style="width:100%">
  34.               <div class="col-md-4">
  35.                 <a id="cargar_pro">Cargar Propuesta</a>
  36.                 <input type="file" class="multi max-3" id="n_archivo_seguimiento"/>
  37.                 <p class="help-block">Maximo hasta 3 archivos</p>
  38.               </div>
  39.             </div>
  40.           </form>
  41.         </div>
  42.       <div class="modal-footer">
  43.         <button type="button" class="btn btn-default" data-dismiss="modal" onclick="quitar_alerta_seguimiento()">Cerrar</button>
  44.         <button type="button" class="btn btn-success" onclick="guardar_seguimiento()" id="registrar_seguimiento">Guardar</button>
  45.       </div>
  46.     </div>
  47.   </div>
  48. </div>
aqui mi funcion que guardar estos registros
Código Javascript:
Ver original
  1. function guardar_seguimiento(){
  2.   var ns_fecha_requerimiento = $("#n_fecha_requerimiento_seguimiento").val();
  3.   var ns_fecha_ultimo_contacto = $("#n_fecha_ultimo_contacto_seguimiento").val();
  4.   var ns_fecha_proximo_contacto = $("#n_fecha_proximo_contacto_seguimiento").val();
  5.   var ns_cliente = $("#n_cliente_seguimiento_id").val();
  6.   var nsv_cliente = $("#n_cliente_seguimiento").val();
  7.   var ns_contacto_cliente = $("#n_contacto_cliente_seguimiento").val();
  8.   var ns_archivo = $("#n_archivo_seguimiento").val();
  9.   if(ns_fecha_requerimiento == ''){
  10.     alert('Por Favor Ingresar Datos');
  11.     $('#n_fecha_requerimiento_seguimiento').focus();
  12.   }else if(ns_fecha_ultimo_contacto == ''){
  13.     alert('Por Favor Ingresar Datos');
  14.     $('#n_fecha_ultimo_contacto_seguimiento').focus();
  15.   }else if(ns_fecha_proximo_contacto == ''){
  16.     alert('Por Favor Ingresar Datos');
  17.     $('#n_fecha_proximo_contacto_seguimiento').focus();
  18.   }else if(nsv_cliente == ''){
  19.     alert('Por Favor Ingresar Datos');
  20.     $('#n_cliente_seguimiento').focus();
  21.   }else if(ns_contacto_cliente.selectedIndex == 0){
  22.     alert('Por Favor Ingresar Datos');
  23.     $('#n_contacto_cliente_seguimiento').focus();
  24.   }else{
  25.     var ns_registro_completado = $("#alerta-seguimiento").html("<div class='alert alert-success'>Seguimiento Agregado</div>");
  26.     $.ajax({
  27.       type: "POST",
  28.       url: "registrar-seguimiento.php",
  29.       data:{
  30.         'ns_fecha_requerimiento': ns_fecha_requerimiento,
  31.         'ns_fecha_ultimo_contacto': ns_fecha_ultimo_contacto,
  32.         'ns_fecha_proximo_contacto': ns_fecha_proximo_contacto,
  33.         'ns_cliente': ns_cliente,
  34.         'ns_contacto_cliente': ns_contacto_cliente,
  35.         'ns_archivo' : ns_archivo
  36.       },
  37.       success: function(data)
  38.       {
  39.         alert(data);
  40.         ns_registro_completado.html();
  41.         $("#n_registro_seguimiento").Formreset();
  42.       }
  43.     });
  44.   }
  45. }

Gracias por su ayuda ha me olvidada estos registro se guardan en una tabla pero para los archivos pense guardarlo en otra tabla pero eso ya es en php
  #2 (permalink)  
Antiguo 05/08/2015, 12:19
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Guardar varios archivos dentro de un formulario

Tienes que usar un objeto FormData para enviarlos mediante una petición asíncrona.

Échale un vistazo a este artículo, te será muy útil.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 05/08/2015, 16:51
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años, 1 mes
Puntos: 2
Respuesta: Guardar varios archivos dentro de un formulario

Gracias alexis por tu ayuda viendo el ejemplo si lo deseo usar en mi funcion y no como un submit como lo haria tienes algun otro articulo
  #4 (permalink)  
Antiguo 05/08/2015, 17:51
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Guardar varios archivos dentro de un formulario

¿Cómo piensas guardar los archivos?

Lo común es que el usuario seleccione uno o más archivos y mediante un formulario los envíe al servidor utilizando cualquiera de los lenguajes existentes (PHP, ASP, JSP) y los guarde. No sé cómo pretendes hacerlo.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 06/08/2015, 07:42
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años, 1 mes
Puntos: 2
Respuesta: Guardar varios archivos dentro de un formulario

Bueno si te fijas en mi codigo tengo una ventana modal en el cual envia los datos a travez de ajax sin recargar la pagina en el ejemplo que me muestra lo hacen a travez de un evento submit yo no uso ese evento si no que le asigno una funcion al boton la cual tambien muestro en la parte de arriba
  #6 (permalink)  
Antiguo 06/08/2015, 11:16
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Guardar varios archivos dentro de un formulario

En ese caso, no habría necesidad de usar un formulario, de hecho hasta con un simple enlace puedes hacer uso de Ajax, pero el punto es que tanto los botones como los <input> son elementos de formulario y lo aconsejable sería que uses uno. Si no quisieras hacerlo, lo cual constituiría un error de semántica web, puedes tener tu o tus <input type = "file"> y realizar el envío con Ajax y el FormData al cual ya no le pasarías un formulario como argumento sino que usarías el método .append(), que mencionan en el artículo que te pasé, para que añadas al o los <input type = "file">.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: formulario
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 17:08.