Foros del Web » Programando para Internet » Jquery »

mensaje de carga jquery

Estas en el tema de mensaje de carga jquery en el foro de Jquery en Foros del Web. HOLA AMIGOS Tengo una duda, es la siguiente: Tengo un formulario de contacto PHP, necesito una imagen de precarga. un gif loader, mientras se envia ...
  #1 (permalink)  
Antiguo 06/07/2015, 15:33
 
Fecha de Ingreso: mayo-2013
Mensajes: 3
Antigüedad: 11 años, 5 meses
Puntos: 0
mensaje de carga jquery

HOLA AMIGOS

Tengo una duda, es la siguiente: Tengo un formulario de contacto PHP, necesito una imagen de precarga. un gif loader, mientras se envia el formulario, programado desde jquery
He tenido un inconveniente. el formulario que tengo funciona bien, pero... tarda unos 20 seg. en devolver el mensaje de exito de envio de información, durante este tiempo, el usuario al no saber que se esta tramitando el envio de la información, da clic en el boton enviar un sin numero de veces. esto hace que el formulario llegue en repetidas ocaciones. a continuación describo el codigo que estoy utilizando

HTML


Cita:
<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php">
<div class="row-fluid">
<div class="span5">
<label>Nombres y Apellidos</label>
<input type="text" class="input-block-level" required="required" placeholder="Nombres y Apellidos">
<label>Teléfono de Contacto:</label>
<input type="text" class="input-block-level" required="required" placeholder="Telefono">
<label>Correo Electronico</label>
<input type="text" class="input-block-level" required="required" placeholder="Su dirección de email">
</div>
<div class="span7">
<label>Mensaje</label>
<textarea name="message" id="message" required="required" class="input-block-level" rows="8"></textarea>
</div>

</div>
<button type="submit" class="btn btn-primary btn-large pull-right">Send Message</button>
<p> </p>

</form>


JQUERY


jQuery(function($) {

//Ajax contact
var form = $('.contact-form');
form.submit(function () {
$this = $(this);
$.post($(this).attr('action'), function(data) {
$this.prev().text(data.message).fadeIn().delay(100 00).fadeOut();
},'json');
return false;
});

//Goto Top
$('.gototop').click(function(event) {
event.preventDefault();
$('html, body').animate({
scrollTop: $("body").offset().top
}, 5000);
});
//End goto top

});

Me gustaria poner el jquery es la típica imagen de Ajax Loader.

PHP

<?php
header('Content-type: application/json');
$status = array(
'type'=>'success',
'message'=>'Correo Enviado!'
);

$name = @trim(stripslashes($_POST['name']));
$email = @trim(stripslashes($_POST['email']));
$subject = @trim(stripslashes($_POST['subject']));
$message = @trim(stripslashes($_POST['message']));

$email_from = $email;
$email_to = '[email protected]';

$body = 'Name: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $message;

$success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>');

echo json_encode($status);
die;

Última edición por danielantioquia; 07/07/2015 a las 11:33 Razón: especificacion del problema
  #2 (permalink)  
Antiguo 14/07/2015, 14:59
 
Fecha de Ingreso: mayo-2013
Mensajes: 3
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: mensaje de carga jquery

Alquien que pueda ayudarme?
  #3 (permalink)  
Antiguo 14/07/2015, 23:14
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: mensaje de carga jquery

Puedes evitar esto de muchas formas, por ejemplo, deshabilitando el botón mientras no se obtenga una respuesta de la petición, ocultándolo o usando una variable cuyo valor determinará si se puede volver a realizar un envío de los datos.

Por ejemplo:

Código HTML:
Ver original
  1. <form id = "ejemplo">
  2.     <!-- Los elementos de ingreso de datos del formulario -->
  3.  
  4.     <input type = "submit">
  5. </form>

Código Javascript:
Ver original
  1. $("#ejemplo").on("submit", function(event){
  2.     event.preventDefault();
  3.  
  4.     $.ajax({
  5.         url: "ejemplo.php",
  6.         type: "get",
  7.         data: {
  8.             foo: "bar"
  9.         }
  10.         beforeSend: function(){
  11.             $(this).find("[type=submit]").hide(); //Oculto al botón al realizar el envío
  12.         }
  13.     }).done(function(response){
  14.         $(this).find("[type=submit]").show(); //Muestro al botón al recibir la respuesta
  15.         //...
  16.     });
  17. });

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: mensaje
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 14:43.