Jump to content
Biel.

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

Recommended Posts

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!

Edited by brunoais
tags code + geshi

Share this post


Link to post
Share on other 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.

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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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>

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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>

Edited by Rui Carlos
GeSHi

Share this post


Link to post
Share on other 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.

Edited by Biel.

Share this post


Link to post
Share on other 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>

Edited by scorch
Adicionado Geshi.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • 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.