Ir para conteúdo
Fórum Script Brasil
  • 0

Countdown Timer com reset


SchattenMann

Pergunta

oi pessoal

tou com um problemao que não tenho conseguido resolver já por dias

preciso de ter no meu site um temporizador decrescente de alguns segundos. ai quando um usuario carregar num botao ele faz reset e começa a contar do principio. ate aqui e facil o problema e que o contador tem de ser resetado em todas as janelas abertas no momento...ou seja se tiverem 2 usuarios com a pagina aberta, se o usuario 1 premir o botao ambos os contadores no browser do usuario 1 e 2 tem de fazer reset...

estou a usar um sistema de php + js com ligaçao a mysql...e tou a guardar a data de destino no mysql para usar no contador...

podem me ajudar pff? era mesmo importante!!!!

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0
olha sinceramente acho que isso você só vai conseguir com o PHP mesmo.. Javascript roda na maquina do cliente, não no servidor... e teria q ter uma linguagem q rode no servidor, no teu caso PHP.

vou mover teu tópico para lá creio que alguém de uma sugestao

php nunca vai fazer um timer porque não e actualizado em tempo real, claro que tem de ser client side....

o meu problema e esse...

Link para o comentário
Compartilhar em outros sites

  • 0

Na verdade isso até poderia ter ficado na parte de PHP, mas você primeiro vai precisar montar a parte do AJAX que vai ficar fazendo as requisições ao servidor, logo, acho que o mais adequado por hora é o tópico ficar por aqui.

E você não está mais na mesma, eu já te falei o que precisa fazer, basta correr atrás...

Link para o comentário
Compartilhar em outros sites

  • 0

Calma calma...direcionar pra outra secao é apenas pra encaixar o tópico na melhor area.

Vou montar um teste aqui de algo q tenho em mente, se funcionar te falo ok.

Esses usuarios são logados ou visitantes?

Em ASP tem o global.asa que são variaveis globais, em PHP você sabe se tem algo parecido ?

Link para o comentário
Compartilhar em outros sites

  • 0

bom eu montei um exemplo q você pode partir dele até chegar onde você precisa. Primeiro o codigo:

<script>
var count = 0;
var xmlHttp;

onload = reset(count)
function reset()
{
    Ajax(count);
    count++
}

function Ajax(count)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
    alert ("Este browser não suporta HTTP Request")
    return
}

var url="reseta_timer.asp?count="+count+"&sid="+Math.random();
xmlHttp.onreadystatechange=function()
{
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    { 
        document.getElementById("ResultTimer").innerHTML=xmlHttp.responseText;
    }
}
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}


function GetXmlHttpObject()
{
var objXMLHttp=null
if (window.XMLHttpRequest)
{
    objXMLHttp=new XMLHttpRequest()
}
else if (window.ActiveXObject)
{
    objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
return objXMLHttp
}
</script>

<div id="ResultTimer"></div>
<input type="button" value="Reset" onclick="reset()">
<%
Response.Charset = "ISO-8859-1"
countAnterior = "0"
count = request("count")

if countAnterior <> count then
    'Aqui deve ser atualizado o contador global com o valor do count atual
    response.write "resetado"
else
    response.write "sem alterações"
end if
%>

Vamos lá, eu fiz em ASP mas é só passar pra PHP.. se você tiver duvida em alguma coisa só falar.

O que você precisa fazer é que o countAnterior seja uma variavel global guardada em algum lugar por exemplo o global.asa ou banco de dados. Dai o sistema consulta do banco de dados a cada X de tempo (use o setInterval ou setTimeOut)

Vou tentar explanar melhor caso ficou alguma duvida, pensa na seguinte cena:

Usuario 1, Usuario 2 e Usuario 3 estão logados no seu sistema. Cada um deles recebe um count no valor 0 e o countAnterior(global) tb está zerado. Isso é pra dizer q ninguém q resetou. ok?

então o Usuario 1 clica no botao de reset, para diferenciar eu somo 1. então o contador deixa de ser 0 e passa a ser 1 para o Usuario 1 e o countAnterior. ok?

Teremos o Usuario 1 com count 1, Usuario 2 com count 0, Usuario 3 com count 0 e countAnterior com count 1.

Dai o seu sistema verifica alterações a cada 5 segundos... passado 5 segundos o sistema do Usuario 1, 2 e 3 ok? Sistema faz o if para o usuario 1, o count dele ta igual ao countAnterior então nada muda no seu timer. Sistema do usuario 2 verifica que o count do usuario está diferente do sistema então..ATUALIZA o contador do usuario.

O mesmo ocorre com o usuario 3...

uffa, deu pra entender ou confundiu mais??? rsss

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...