Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Enviar formulario cada x tiempo

Estas en el tema de Enviar formulario cada x tiempo en el foro de Frameworks JS en Foros del Web. Hola, necesito enviar un formulario cada x tiempo sin que se recargue la pagina: Cita: <script language="javascript" src="../js/jquery-1.3.min.js"></script> $(document).ready(function() { // Esta primera parte crea ...
  #1 (permalink)  
Antiguo 18/08/2010, 01:08
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 10 meses
Puntos: 9
Enviar formulario cada x tiempo

Hola, necesito enviar un formulario cada x tiempo sin que se recargue la pagina:

Cita:
<script language="javascript" src="../js/jquery-1.3.min.js"></script>

$(document).ready(function() {
// Esta primera parte crea un loader no es necesaria
$().ajaxStart(function() {
$('#loading').show();
$('#result').hide();
}).ajaxStop(function() {
$('#loading').hide();
$('#result').fadeIn('slow');
});
// Interceptamos el evento submit
$('#form, #fat, #fo3').submit(function() {
// Enviamos el formulario usando AJAX
$.ajax({
type: 'POST',
url: $(this).attr('action'),
data: $(this).serialize(),
// Mostramos un mensaje con la respuesta de PHP
success: function(data) {
$('#result').html(data);
}
})
return false;
});
})

<form method="post" action="../procesar.php?room=1" id="fo3" name="fo3"
//Aquí los inputs...
</form>
<div id="result"></div>
Si le doy click al boton de enviar funciona perfectamente, no recarga y se guarda, pero lo que quiero es que se envie cada x tiempo. He provado con un setTimeout, pero con esto no funciona, porque me envia directamente a la página del action="../procesar.php?room=1"

Como lo puedo hacer?

Última edición por SeaPirates; 18/08/2010 a las 07:24
  #2 (permalink)  
Antiguo 18/08/2010, 07:24
 
Fecha de Ingreso: enero-2008
Ubicación: Buenos Aires
Mensajes: 305
Antigüedad: 16 años, 10 meses
Puntos: 14
Respuesta: Actualizar datos sin recargar página

primero, debes meter el proceso que guarda el registro en una funcion:
Código Javascript:
Ver original
  1. save = function(form){
  2.    // Enviamos el formulario usando AJAX
  3.    $.ajax({
  4.       type: 'POST',
  5.       url: $('#'+form).attr('action'),
  6.       data: $('#'+form).serialize(),
  7.       // Mostramos un mensaje con la respuesta de PHP
  8.       success: function(data) {
  9.          $('#result').html(data);
  10.       }
  11.    });
  12. }

Luego en el click de los formaularios, haces la ejecución de la función:
Código Javascript:
Ver original
  1. $('#form').submit(function(){
  2.    save('form');
  3. });
  4. $('#fat').submit(function(){
  5.    save('fat');
  6. });
  7. $('#fo3').submit(function(){
  8.    save('fo3');
  9. });

Y luego, creas un intervalo de tiempo en que se ejecute la funcion save()
  #3 (permalink)  
Antiguo 18/08/2010, 08:51
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: Enviar formulario cada x tiempo

Lo siento, soy novato en esto del ajax

Cita:
$(document).ready(function() {
// Esta primera parte crea un loader no es necesaria
$().ajaxStart(function() {
$('#loading').show();
$('#result').hide();
}).ajaxStop(function() {
$('#loading').hide();
$('#result').fadeIn('slow');
});
// Interceptamos el evento submit
$('#form, #fat, #fo3').submit(function() {
// Enviamos el formulario usando AJAX
save = function(form){
$.ajax({
type: 'POST',
url: $('#'+form).attr('action'),
data: $('#'+form).serialize(),
// Mostramos un mensaje con la respuesta de PHP
success: function(data) {
$('#result').html(data);
}
});
}

Le añadí el primer código que pusiste, pero lo demás no lo entendí.

Cita:
Y luego, creas un intervalo de tiempo en que se ejecute la funcion save()
Te refieres a:
setInterval("save()",1000); ?

Última edición por SeaPirates; 18/08/2010 a las 09:04
  #4 (permalink)  
Antiguo 18/08/2010, 10:29
 
Fecha de Ingreso: enero-2008
Ubicación: Buenos Aires
Mensajes: 305
Antigüedad: 16 años, 10 meses
Puntos: 14
Respuesta: Enviar formulario cada x tiempo

Claro, te quedaría así:

Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.   $('#form').submit(function(){
  3.     save('form');
  4.   });
  5.   $('#fat').submit(function(){
  6.     save('fat');
  7.   });
  8.   $('#fo3').submit(function(){
  9.     save('fo3');
  10.   });
  11.  
  12.   setInterval("save('#ID_FORMULARIO')",1000); // se va a actualizar cada 1seg los datos del formulario que le pases como ID
  13. });// end ready
  14.  
  15. save = function(form){
  16.   // Enviamos el formulario usando AJAX
  17.   $.ajax({
  18.      type: 'POST',
  19.      url: $('#'+form).attr('action'),
  20.      data: $('#'+form).serialize(),
  21.      // Mostramos un mensaje con la respuesta de PHP
  22.      success: function(data) {
  23.         $('#result').html(data);
  24.      }
  25.   });
  26. }
  #5 (permalink)  
Antiguo 18/08/2010, 11:15
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: Enviar formulario cada x tiempo

No se que hago mal, pero no guarda nada :/

Código:
$(document).ready(function() {
  $('#form').submit(function(){
    save('form');
  });
  $('#fat').submit(function(){
    save('fat');
  });
  $('#fo3').submit(function(){
    save('fo3');
  });
  
  setInterval("save('#fo3')",1000); // se va a actualizar cada 1seg los 

datos del formulario que le pases como ID
});// end ready
 
save = function(form){
  // Enviamos el formulario usando AJAX
  $.ajax({
     type: 'POST',
     url: $('#'+form).attr('action'),
     data: $('#'+form).serialize(),
     // Mostramos un mensaje con la respuesta de PHP
     success: function(data) {
        $('#result').html(data);
     }
  });
}

<form method="post" action="../procesar.php?room=1" id="fo3" name="fo3" >
    <input  type="text" name="cnarriba" value="">
<input  type="text" name="cnderecha" value="<? echo $derecha; ?>">
<input  type="text" name="cnactivado" value="">
<input  type"=text" name="editar"  type="submit" value="prueba">
</form>
  #6 (permalink)  
Antiguo 18/08/2010, 11:52
 
Fecha de Ingreso: enero-2008
Ubicación: Buenos Aires
Mensajes: 305
Antigüedad: 16 años, 10 meses
Puntos: 14
Respuesta: Enviar formulario cada x tiempo

Código Javascript:
Ver original
  1. setInterval("save('#fo3')",1000);

Fijate que cuando pasas el ID como parámetro, lo tienes que pasar sin el "#" porque ya está concatenado en la función save
Código Javascript:
Ver original
  1. setInterval("save('fo3')",1000);
  #7 (permalink)  
Antiguo 18/08/2010, 12:14
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: Enviar formulario cada x tiempo

Muchas gracias, +1

Última edición por SeaPirates; 18/08/2010 a las 13:27
  #8 (permalink)  
Antiguo 19/08/2010, 09:58
 
Fecha de Ingreso: enero-2008
Ubicación: Buenos Aires
Mensajes: 305
Antigüedad: 16 años, 10 meses
Puntos: 14
Respuesta: Enviar formulario cada x tiempo

De nada ;)

Etiquetas: ajax, enviar, 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 08:30.