Jump to content

Countdown - Relogio


davidconcha
 Share

Recommended Posts

Boa tarde comunidade!

Já ando á volta disto á algum tempo e nao encontro soluçao.

Como poderei fazer um countdown de horas, minutos e segundos com o valor dessas mesmas variaveis na base de dados?

Eu tenho uma tabela na bd, onde guardo os valores horas, minutos e segundos definidos já por mim. Gostava de ter um echo da hora inicial até chegar a 00:00:00. Provavelmente irei ter de usar javascript, se alguem tiver um codigo ou conhecer alguma fonte de um artigo que me possa ajudar eu agradeço.

Boa continuação, abc

Link to comment
Share on other sites

Talvez este possa ser um ponto de partida para ti...

http://www.portugal-a-programar.pt/topic/63475-relogio-e-data/

  • Vote 1

"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Link to comment
Share on other sites

Obrigado pela resposta.

Estou com o seguinte codigo:

Eu aqui faço um request á base de dados por id, para uma tabela em html que me vai imprimir os id's q tenho na tabela sorteio.

$result = mysql_query('SELECT * FROM sorteio');
echo "<table border='1'>
<tr>
<th>Numero de Sorteio</th>
<th>Jogadores Inscritos</th>



<th>Faltam</th>
<th>Comprar lugar</th>

</tr>";

while($row = mysql_fetch_array($result)) {

echo "<tr>";
echo "<td>" . $row['id'] . "</td>";

echo "<td>" . $row['jogadores_insc'] . "</td>";



echo "<td>" . $row['hora'] .$row['min'].$row['seg']. "</td>";
echo "<td><span id='contador'></span></td>";


echo "<td><a href=comprar.php?id=".$row['id'].">botao</a></td>";
echo "</tr>";

}
echo "</table>";

Neste codigo estou a usar

echo "<td><span id='contador'></span></td>";

para ele me imprimir na tabela em todos os id's o relogio feito em javascript, usando a hora os minutos e os segundos de cada id

Aqui é o codigo do relogio:

<script language="Javascript">
var YY = 2014;
var MM = 03;
var DD = 6;
var HH = <?php echo $hora ?>;
var MI = <?php echo $min ?>;
var SS = <?php echo $seg ?>;
function atualizaContador() { var hoje = new Date();
var futuro = new Date(YY,MM-1,DD,HH,MI,SS);
var ss = parseInt((futuro - hoje) / 1000);
var mm = parseInt(ss / 60);
var hh = parseInt(mm / 60);
var dd = parseInt(hh / 24);
ss = ss - (mm * 60);
mm = mm - (hh * 60);
hh = hh - (dd * 24);
var faltam = '';
faltam += (dd && dd > 1) ? dd+' dias, ' : (dd==1 ? '1 dia, ' : '');
faltam += (toString(hh).length) ? hh+' hr, ' : '';
faltam += (toString(mm).length) ? mm+' min e ' : '';
faltam += ss+' seg';
if (dd+hh+mm+ss > 0) { document.getElementById('contador').innerHTML = faltam;
	 setTimeout(atualizaContador,1000);
} else { document.getElementById('contador').innerHTML = 'Terminado';
setTimeout(atualizaContador,1000);
}
}
</script>

O problema é q quando faço o request á BD para me imprimir os id's ele nao imprime o relogio adaptado a cada uma das linhas(id) da tabela. Como poderei resolver isto?

Obrigado!

Link to comment
Share on other sites

Dessa forma não vais lá. O uso de AJAX será o mais aconselhado..

$.ajax({
  type: "POST",
  url: "sorteio.php",
  dataType: 'json',
  success: function(data){
 // aqui recebes os valores e envias para as funções/variáveis do javascript
 // Tendo em conta que é um array multidimensional, em princípio para acederes aos valores é assim:
 // HH = data[0].hora;
  }
});

No teu código de PHP tens de enviar um array e convertê-lo para json_encode.

$content = array();
while($row = mysql_fetch_array($result)) {
  $content[] = array("id" => $row['id'], "hora" => $row['hora'], etc);
}

return json_encode($content);
  • Vote 1
Link to comment
Share on other sites

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
 Share

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