Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite pessoal,
To com um problema aqui e espero que voces possam me ajudar.
Tenho uma função que calcula a diferença entre duas datas de um evento e coloca o resultado numa DIV.
A questão é que essas datas vem de um banco e eu trago com um script php porem quando existe mais de um evento somente o ultimo é atualizado. As DIVs anteriores ficam em branco.
Eu chamo a função no body com onload.
Segue a função:
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);
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(id).innerHTML = faltam;
setTimeout(atualizaContador,1000);
} else {
document.getElementById(id).innerHTML = 'CHEGOU!!!!';
setTimeout(atualizaContador,1000);
}
}
Alguma sugestão de como resolver isso?
Vlw!!!
id é o ID do SPAN que quero que seja preenchido. Eu jogo o id do evento no banco.
<?
Abre_Conexao();
$query = mysql_query("SELECT * FROM evento WHERE status = '1'");
$count = mysql_num_rows($query);
if ( $count != '0' ) {
echo "<table width='700' border='0' cellspacing='0' cellpadding='0'>
<tr>
<td>Nome </td>
<td>Tempo Restante</td>
</tr>";
while ($row = mysql_fetch_array($query)) {
$id = $row['id'];
$nome = $row['nome'];
$dt_fim = $row['dt_fim'];
$hora_fim = $row['hora_criado'];
$hora = substr($hora_fim,0,2);
$min = substr($hora_fim,3,2);
$seg = substr($hora_fim,6,2);
$mes = substr($dt_fim,5,2);
$dia = substr($dt_fim,8,2);
$ano = substr($dt_fim,0,4);
?>
<script type="text/javascript">
var YY = <? echo $ano ?>;
var MM = <? echo $mes ?>;
var DD = <? echo $dia ?>;
var HH = <? echo $hora ?>;
var MI = <? echo $min ?>;
var SS = <? echo $seg ?>;
var id = <? echo $id ?>;
</script>
<?
echo "
<br />
<tr>
<td>$nome </td>
<td>Faltam <span id='$id'></span></td>
</tr>
";
}
echo "</table>";
}
?>
<script language="javascript" src="func.js"></script>
Você não deve repetir IDs.. para tanto, comece a passar os ids dos campos como parâmetros da sua função.
document.getElementById(id).innerHTML = faltam; quem é essa variável id ?Posta um fragmento do HTML gerado pelo teu php, que ai podemos rodar o script.