Jump to content

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


Recommended Posts

Posted (edited)
<!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!

Edited by brunoais
tags code + geshi
Posted (edited)

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.

Edited by 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%.

Posted

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

Posted

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>
Posted

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

Posted

.

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>
Posted (edited)

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.

Edited by Biel.
Posted (edited)

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>
Edited by scorch
Adicionado Geshi.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.