Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Biel.

Botão Enviar está no automático. Como interromper a execução dele após

Recommended Posts

Boa tarde pessoal. O botão Enviar abaixo está no automático. Como faço interromper a execução dele após 10 envio ou 20 envio. Obrigado amigo!



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<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(10)>


<form action="formulario.php" method="post" name="tetete">

<input type="submit" name="enviar" id="enviar" value="Enviar" />

</form>


</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

sugestão:

 

1. remova:

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

2. controle a quantidade de execuções com javascript

 

 

<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 onnLoad="start_sending();">

adicione um iframe:

<iframe src="about:blank" width="200" height="200" name="ifrm"></iframe>

 

no form, adicione o target:

<form action="formulario.php" method="post" name="tetete" target="ifrm">

Esse é o jeito mais simples possível..

 

Caso queira algo melhor, procure pelo uso de Ajax.

 

 

*não testei.. apenas digitei conforme veio a mente... mas é algo por aí..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde a todos. Hinom! Tentei de todas as formas, mas não consegui. Não entendo nada de javascript e por este motivo não estou conseguindo resolver a questão.

 

<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();">

 




			
		

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Boa tarde a todos. Hinom! Tentei de todas as formas, mas não consegui. Não entendo nada de javascript e por este motivo não estou conseguindo resolver a questão.

 

<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();">

 


O código do Hinom está certo, apenas troque essa linha:

window.setInterval(function(){submeter()},seconds);

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

O código do Hinom está certo, apenas troque essa linha:

window.setInterval(function(){submeter()},seconds);

Hinom e Rodrigo. Parabéns! Troquei a linha e deu certo. Só que não está voltando pra página contato.php .Gostaria que voltasse pra a pagina de contato.php e após 10 envio o script parasse de executar. Grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use o location.href;

<script type="text/javascript">

var qtd = 0;

var limit = 10;

var seconds = 5;

function submeter(){

if( qtd < limit ){

document.forms.tetete.submit();

} else {

location.href = 'contato.php';

}

qtd++;

}

function start_sending(){

seconds *= 1000;

window.setInterval(function(){myTimer()},seconds);

}

</script>

 

<body onnLoad="start_sending();">

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Use o location.href;

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

<body onnLoad="start_sending();">

Rodrigo não está redirecionando. Percebo que quando eu troco myTimer por submeter a página é enviada, mas ainda assim ela não volta

 

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz aqui e funcionou normal, segue o HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR...ransitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Documento sem título</title>
 
<script language=javascript>
var qtd = 0;
var limit = 10;
var seconds = 5;
function submeter(){ 
  if( qtd < limit ){
    document.forms.tetete.submit();
  } else {
	location.href = 'contato.php';
	}
qtd++;
}
function start_sending(){
    seconds *= 1000;
    window.setInterval(function(){submeter()},seconds);
}
</script>
 
</head>
 
<body OnLoad="start_sending()">
 
<form action="formulario.php" method="post" name="tetete" target="ifrm">
<input type="submit" name="enviar" id="enviar" value="Enviar" />
</form>
 
 <iframe src="about:blank" width="200" height="200" name="ifrm"></iframe>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal.. o motivo de ter escrito a função "start_sending"

é para controlar o o intervalo e executar continuamente até o limite imposto..

Sem isso a lógica não rola..

 

sobre o iframe é justamente para nem precisar fazer o redirect com outras gambiarras..

 

Um problema no código que postei é que esqueci de definir o nome certo da função no setInterval

 

em negrito, errado

window.setInterval(function(){myTimer()},seconds);

 

corrigido:

window.setInterval(function(){submeter()},seconds);

 

 

 

o código inteiro com a correção:

<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(){submeter()},seconds);
}
</script>

<body onnLoad="start_sending();">

<iframe src="about:blank" width="200" height="200" name="ifrm"></iframe>


<form action="formulario.php" method="post" name="tetete" target="ifrm">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Hinon e Rodrigo. Parabéns! Tarefa resolvida. Grato!



Bom dia a todos. Hinom e Rodrigo se eu não estiver pedindo demais eu quero acrescentar só mais 2 detalhes no script.


1º o script está executando muito bem só que com um botão ENVIAR e outro botão PARAR seria bem melhor.
Inclusive gostaria que o script executasse quando eu clicasse no botão ENVIAR. E se porventura eu quiser
interromper a execução do scrip eu clico no botão PARAR. Amigo muito pela sua atenção e colaboração.


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR...ransitional.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(){submeter()},seconds);
}
</script>

<body onLoad="start_sending();">

<iframe src="about:blank" width="200" height="200" name="ifrm"></iframe>

<form action="formulario.php" method="post" name="tetete" target="ifrm">

<input type="submit" name="enviar" value="ENVIAR" />

</form>



</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

adicione essa função no javascript

function stop_timer(){
    qtd = limit;
}

 

no html esse botão que chamará a função de "stop":

<input type="button" value="interromper" onclick="javascript:stop_timer();" />

 

seria bom também limpar o setTimeInterval.. mas isso é outro assunto..

 

pesquise para entender melhor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

adicione essa função no javascript

function stop_timer(){
    qtd = limit;
}

 

no html esse botão que chamará a função de "stop":

<input type="button" value="interromper" onclick="javascript:stop_timer();" />

 

seria bom também limpar o setTimeInterval.. mas isso é outro assunto..

 

pesquise para entender melhor.

Boa tarde a todos. Hinon Interrompeu mesmo viu o envio automático. Hinom só faltou um pequeno detalhe. Assim que eu entro na página o script já começa a enviar sem eu pedir. Quero que fique no automático só depois que eu clicar no botão ENVIAR. Mais uma vez muito obrigado pelas informações postadas suas e de todo o fórum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde a todos. Hinom seu script está funcionando perfeitamente bem. Eu esqueci de um detalhe muito importante. Assim que entro na página o script já começa a executar. Gostaria que o script executasse quando eu clicar no botão Enviar. Veja:

<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(){submeter()},seconds);
}


function start_timer(){
    qtd = limit;
}

function stop_timer(){
    qtd = limit;
}


</script>

<form action="formulario.php" method="post" name="tetete">

<input type="submit" name="" value="Enviar" onclick="javascript:start_timer();" />
<input type="button" name="" id="enviar" value="interromper" onclick="javascript:stop_timer();" />

</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

é do jeito que está nesse seu último post.. apenas remova o evento onload da tag body:

 

<body onnLoad="start_sending();">

:seta:

<body>

Compartilhar este post


Link para o post
Compartilhar em outros sites

é do jeito que está nesse seu último post.. apenas remova o evento onload da tag body:

 

<body onnLoad="start_sending();">

:seta:

<body>

Não deu certo. Removi onload e ficou no manual. será que não tem haver com start_sending() . Só estou chutando.

<!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(){submeter()},seconds);
}

function start_timer(){
    qtd = limit;
}

function stop_timer(){
    qtd = limit;
}

</script>

</head>
<body>
<form action="formulario.php" method="post" name="tetete"> <input type="submit" name="" value="Enviar" onclick="javascript:start_timer();" /> <input type="button" name="" id="enviar" value="interromper" onclick="javascript:stop_timer();" /> </form>

</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

outra coisa... não entendi porque vc criou a função:

 

 

 

function start_timer(){

   qtd = limit; 

}

 

 

 

e também, qual motivo de chamar a função no botão de envio?

 


"Enviar" onclick="javascript:start_timer();"

 

 

não faz o menor sentido.. pois do modo como escreveu o c[ódigo, a função está fazendo o mesmo que o stop_timer..

 

 

 

 

 

Não deu certo. Removi onload e ficou no manual. será que não tem haver com start_sending() . Só estou chutando.

mas afinal, vc quer automático ou manual ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara você acertou em cheio de primeira. Parabéns. Muito bom.
O que vocês fizeram está corretíssimo, o problema é que eu não consegui transmitir a minha ideia e por este motido o objetivo ainda não foi alçancado. Percebo que o contador javascript é zerado com refresh na página. Minha ideia é usar o refresh mesmo. Coloquei um contador php na página contato.php ou seja toda vez que o script é executado o formulario é enviado e o refresh se encarrega de voltar para a página anterior e o contador de visitas php se encarrega de contar o número de visitas na página contato.php

A questão está aqui: Entrei na página contato.php certo? Não quero que o script seja executado por ele mesmo. Quero que o script seja executado quando eu clicar no botão ENVIAR. Uma vez clicado quero que o envio permaneça no automatico, tipo: cliquei, enviou, deu refresh na página 5 segundos, voltou para contato.php e o script se encarrega de enviar de novo, depois ocorrerá refresh na página, voltando pra página anterior e o processo fica assim até eu decidir parar a execução do script clicando no botão PARAR. E se porventura eu quiser continuar com o envio automatico eu clico no botão ENVIAR.

 

IMP: O que eu quero fazer com iframe não funciona. Em relação o form, gostaria que ficasse do jeito que está.

<!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://localhost/aprendiz/contato.php" />
<title>Documento sem título</title>

<script type="text/javascript">
var qtd = 0;
var limit = 2;
var seconds = 5;

function submeter(){ 
  if( qtd < limit ){
    document.forms.tetete.submit();
  }
qtd++;
}
function start_sending(){
    seconds *= 500;
    window.setInterval(function(){submeter()},seconds);
}

function stop_timer(){
    qtd = limit;
}

</script>


</head>
<body onload="start_sending();">

<form action="formulario.php" method="post" name="tetete">

<input type="submit" name="enviar" value="ENVIAR" />
<input type="button" name="" value="PARAR" onclick="javascript:stop_timer();" />

</form>


</body>
</html>

 

 

@Biel para que vc quer esse código?

 

 

enviar emails eventualmente pra meus clientes

Compartilhar este post


Link para o post
Compartilhar em outros sites

No post #2, o primeiro passo era remover o meta refresh, pois não faz sentido algum ter na página..

 

O JavaScript cuidará da temporização..

 

Obviamente necessita do iframe para enviar o formulário de forma oculta visualmente.

 

A página /aprendiz/contato.php é a mesma página que contém script ou é outra página ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.