Foros del Web » Programando para Internet » Jquery »

Loading formulario

Estas en el tema de Loading formulario en el foro de Jquery en Foros del Web. Tengo unas pequena duda en cuanto a crear barras de carga he buscado en youtube y en google y no doy o no entiendo bien ...
  #1 (permalink)  
Antiguo 05/09/2016, 23:01
 
Fecha de Ingreso: mayo-2012
Mensajes: 117
Antigüedad: 12 años, 7 meses
Puntos: 1
Loading formulario

Tengo unas pequena duda en cuanto a crear barras de carga he buscado en youtube y en google y no doy o no entiendo bien como crear una barra de carga, tengo un formulario el cual le suben hasta 30 imagenes pero pasa que los usuarios al momento de enviar la informacion piensan que el formulario se ha frizado y le dan mas de una vez haciendo esto que se me cree mas de un reporte... Estuve usando la funcion "beforeSend" pero intento fallido me percate que no me sirve para eso... una vez vi que se hablo de un plugin de javascript para eso pero no recuerdo el nombre si alguien sabe de algun video para hacerlo se lo agreadecere en el alma les dejo mi codigo que envia la informacion por si les llega algun consejo.

Código Javascript:
Ver original
  1. //Create REPORT
  2.     $('#reporte').submit(function(e){
  3.  
  4.         e.preventDefault();
  5.         var formData = new FormData(document.getElementById("reporte"));
  6.         formData.append("dato", "valor");
  7.  
  8.         $.ajax({
  9.             url: "../model/report_model.php?form=create",
  10.             type: "post",
  11.             dataType: "json",
  12.             data: formData,
  13.             cache: false,
  14.             contentType: false,
  15.             processData: false,
  16.             beforeSend:function(){
  17.                
  18.             }
  19.             success:function(data){
  20.                 console.log(data);
  21.                 $('.msg').html('');
  22.                 if (data.status == 0) {
  23.                     $('.msg').html("<div class='alert alert-danger fade in'><a href='#' class='close' data-dismiss='alert' aria-label='close'>&times;</a><b><span id='message'></span></b></div>");
  24.                     for (var i = 0; i < data.msg.length; i++) {
  25.                         $('#message').append("- "+data.msg[i]+"<br>");
  26.                     }
  27.                 }else if(data.status == 1){
  28.                     $('.msg').html("<div class='alert alert-warning fade in'><a href='#' class='close' data-dismiss='alert' aria-label='close'>&times;</a><b><span id='message'></span></b></div>");
  29.                     $('#message').append(data.msg);
  30.                 }else if(data.status == 2){
  31.                     $('#reporte')[0].reset();
  32.                     $('.msg').html("<div class='alert alert-success fade in'><a href='#' class='close' data-dismiss='alert' aria-label='close'>&times;</a><b><span id='message'></span></b></div>");
  33.                     $('#message').append(data.msg);
  34.                     $('body,html').animate({scrollTop : 200}, 500);
  35.                      return false;
  36.                 }
  37.             }
  38.         })
  39.  
  40.     })//--create REPORT

Se les agradece..
  #2 (permalink)  
Antiguo 06/09/2016, 00:28
 
Fecha de Ingreso: mayo-2012
Mensajes: 117
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Loading formulario

Con esto he conseguido el precargador, lo vi en un video el problema viene ahora asi..

Este es el codigo con el que hice el cargador, que por cierto solo me carga una imagen a la vez :( y en el formulario envio varias..
Código Javascript:
Ver original
  1. //Create REPORT
  2.     $('#reporte').submit(function(e){
  3.  
  4.         e.preventDefault();
  5.         $form = $('#reporte');
  6.        
  7.         $form.find('.progress-bar').removeClass('progress-bar-success').removeClass('progress-bar-danger');
  8.  
  9.             var formdata = new FormData($form[0]); //formelement
  10.             var request = new XMLHttpRequest();
  11.  
  12.             //progress event...
  13.             request.upload.addEventListener('progress',function(e){
  14.                 var percent = Math.round(e.loaded/e.total * 100);
  15.                 $form.find('.progress-bar').width(percent+'%').html(percent+'%');
  16.             });
  17.  
  18.             //progress completed load event
  19.             request.addEventListener('load',function(e){
  20.                 $form.find('.progress-bar').addClass('progress-bar-success').html('upload completed....');
  21.             });
  22.  
  23.             request.open('post', '../model/report_model.php?form=create"');
  24.             request.send(formdata);
  25.  
  26.             $form.on('click','.cancel',function(){
  27.                 request.abort();
  28.  
  29.                 $form.find('.progress-bar')
  30.                     .addClass('progress-bar-danger')
  31.                     .removeClass('progress-bar-success')
  32.                     .html('upload aborted...');
  33.             });
  34.  
  35.     })//--create REPORT

Estuve viendo un poco de como adaptarlo para usar la funcion succes que seria algo como esto, porque no me quedo muy claro
Código Javascript:
Ver original
  1. $('#reporte').submit(function(e){
  2.  
  3.         e.preventDefault();
  4.         $form = $('#reporte');
  5.        
  6.         $form.find('.progress-bar').removeClass('progress-bar-success').removeClass('progress-bar-danger');
  7.  
  8.        
  9.         $.ajax({
  10.             xhr: function(){
  11.                 //var xhr = new window.XMLHttpRequest();
  12.                 var request = new XMLHttpRequest();
  13.                 //progress event...
  14.                 request.upload.addEventListener('progress',function(e){
  15.                     var percent = Math.round(e.loaded/e.total * 100);
  16.                     $form.find('.progress-bar').width(percent+'%').html(percent+'%');
  17.                 });
  18.                 //progress completed load event
  19.                 request.addEventListener('load',function(e){
  20.                     $form.find('.progress-bar').addClass('progress-bar-success').html('upload completed....');
  21.                 });
  22.  
  23.                 request.open('post', '../model/report_model.php?form=create"');
  24.                 request.send(formdata);
  25.  
  26.                return xhr;
  27.             },
  28.             success:function(){
  29.                 $('.msg').html('');
  30.                 if (data.status == 0) {
  31.                     $('.msg').html("<div class='alert alert-danger fade in'><a href='#' class='close' data-dismiss='alert' aria-label='close'>&times;</a><b><span id='message'></span></b></div>");
  32.                     for (var i = 0; i < data.msg.length; i++) {
  33.                         $('#message').append("- "+data.msg[i]+"<br>");
  34.                     }
  35.                 }else if(data.status == 1){
  36.                     $('.msg').html("<div class='alert alert-warning fade in'><a href='#' class='close' data-dismiss='alert' aria-label='close'>&times;</a><b><span id='message'></span></b></div>");
  37.                     $('#message').append(data.msg);
  38.                 }else if(data.status == 2){
  39.                     $('#reporte')[0].reset();
  40.                     $('.msg').html("<div class='alert alert-success fade in'><a href='#' class='close' data-dismiss='alert' aria-label='close'>&times;</a><b><span id='message'></span></b></div>");
  41.                     $('#message').append(data.msg);
  42.                     $('body,html').animate({scrollTop : 200}, 500);
  43.                      return false;
  44.                 }
  45.             }
  46.         })
  47.     })//--create REPORT

Pero entonces no me funciona no lanza error no nada..

Etiquetas: formulario, loading
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 09:40.