Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Biel.

[Resolvido] formulário seja enviado automaticamente a cada 10 segundos

Mensagens Recomendadas

Biel.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="refresh" content="5; URL=http://www.meusite/contato.php" />
<title>Documento sem título</title>
</head>

<body>

<form action="formulario.php" method="post" name="formulario">
<input type="submit" name="enviar" id="enviar" value="Enviar" />
</form>

</body>
</html>

Bom dia a todos. Pessoal gostaria de um auxilio na seguinte questão:

Como faço para deixar o botão enviar no piloto automático?

Ou seja: Quero que o formulário seja enviado automaticamente a cada 10 segundos

sem eu precisar ficar clicando nele toda vez que eu quiser mandar email.

OBS: acima já tem <meta http-equiv="refresh" content="5; URL=http://www.meusite/contato.php" />

Toda vez que eu clico no botão Enviar, apareçe uma página que criei com o nome de http://www.meusite/dados_enviado.php

juntamente com sua mensagem no corpo da página DADOS ENVIADO COM SUCESSO!

Após cinco 5 segundos conforme especificado na <meta http-equiv="refresh" a página volta para http://www.meusite/contato.php

gostaria de um script que se encarregasse de enviar o formulário automaticamente

toda vez que voltasse a cada 5 segundos para a página http://www.meusite/contato.php

Amigo muito obrigado pela sua atenção!

Editado por brunoais
tags code + geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunoais

Javascript. Procura por:

setTimeout()

getElementById()

submit()

fora isso, não tens solução. Eu retirava tb aquela 2ª meta tag que escreveste no código. Só serve para incomodar.

Editado por brunoais

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pedrotuga

esse refresh so te faz um refresh do browser, tu precisas de submeter o formulario, no teu caso ate tens definido que é via post.

A forma de fazer isso é, como acabou de dizer o bruno, via javascript.

pega no jquery e serializa o form com o serialize()

http://api.jquery.com/serialize/

depois escreve uma funcao para enviar isso via via post (aka AJAX)

http://api.jquery.com/jQuery.post/

Depois pendura um envento ao scope principal que te chama essa funcao. p ex:

http://stackoverflow.com/questions/2170923/whats-the-easiest-way-to-call-a-function-every-5-seconds-in-jquery

Dica: instala o firebug ou, se tiveres o chrome usa o chrome developer tools. Num ou noutro, clica na tab de network, da para ver os pedidos todos em detalhe

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Biel.

brunoais e pedrotuga Resolvi a questão. Abaixo encontrei dois script que funcionam normalmente. Grato!

Se eu não estiver pedindo demais; agora como eu faço para especificar o numero de envio em um dos script abaixo. Ex: quero que o script pare de executar quando realizar 500 envio ou 10.000

Após chegar no número x de envio especificado o script para de executar. Obrigado!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="refresh" content="5; URL=http://www.meusite/contato.php" />
<title>Documento sem título</title>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>

<script type="text/javascript">
 $(document).ready(function() {
   window.document.forms[0].submit();
 });
</script>
< /head>

<body>

<form action="formulario.php" method="post" name="formulario">
<input type="submit" name="enviar" id="enviar" value="Enviar" />
</form>

</body>
</html>

ou

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="refresh" content="5; URL=http://www.meusite/contato.php" />
<title>Documento sem título</title>

<script language=javascript>
function submeter()
{
document.forms.tetete.submit();
}
</script>
< /head>

<body onload=submeter(5)>

<form action="formulario.php" method="post" name="tetete">
<input type="submit" name="enviar" id="enviar" value="Enviar" />
</form>

</body>
</html>

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
clera

boas,

basicamente tiras o refresh e usas a função que te foi dada em cima "setTimeout()",

depois é só criares uma variável que te vá incrementando cada vez que a função for chamada, quando essa variável chegar ao numero que desejares páras de a chamar..

com o refresh a variável do contador volta sempre a 0, dai não poderes usá-lo ;)

abraço

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Biel.

.

Boa tarde a todos. Pessoal acrescentei algumas variáveis, ainda assim nada da certo. não sei onde está o erro. Vejam:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Documento sem título</title>

<script type="text/javascript">
var qtd = 0;
var limit = 10;
var seconds = 5;
function submeter(){
 if( qtd < limit ){
document.forms.tetete.submit();
 }
qtd++;
}
function start_sending(){
seconds *= 1000;
window.setInterval(function(){myTimer()},seconds);
}
</script>

<body onload="start_sending();">

<form action="formulario.php" method="post" name="tetete">
<input type="submit" name="enviar" id="enviar" value="Enviar" />
</form>

</body>
</html>

Editado por Rui Carlos
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Biel.

Olá Yoda! O objetivo é enviar uma quantidade x de email de 10 em 10 segundos para não sobrecarregar o servidor. Uma vez terminado a quantidade x de emails quero que o script pare.

tenho muitossssssss emails, se eu fizer manualmente vou ficar a vida toda só mandando emails. Veja: enquanto faço um trabalho, o script faz outro ou seja se encarrega de enviar os emails. Quando todos os emails forem enviados quero que o script pare. é isso.

Editado por Biel.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Biel.

Boa noite a todos. Pessoal o script abaixo está funcionando bem. Só falta dois 2 detalhes.

1º det: uma vez enviado o formulario o mesmo não retorna para a pagina anterior que é contato.php

2º det: Quero que o script pare de executar quando o formulario for enviado 10 vezes

Vejam o script abaixo. Obrigado!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd%22>
<html xmlns="http://www.w3.org/1999/xhtml%22>
<head>

<title>Documento sem título</title>

<script language=javascript>
var qtd = 0;
var limit = 2;
var seconds = 2;
function submeter(){
 if( qtd < limit ){
document.tetete.submit();
 }
qtd++;
}
function start_sending(){
seconds *= 200;
window.setInterval(function(){submeter()},seconds);  
}

</script>

</head>
<body onload="start_sending();">
<form action="formularioscript.php" method="post" name="tetete">
</form>

</body>
</html>

Editado por scorch
Adicionado Geshi.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.