charleskx 4 Denunciar post Postado Outubro 10, 2013 Galera é o seguinte. Estou tentando criar um sistema de contagem regressiva utilizando o jQuery Countdown, quando tenho apenas um registro no banco de dados ele faz a contagem regressiva e no final exibe a mensagem corretamente, o problema surge quando inserido um novo registro no banco de dados Ao invés do sistema tratar os dois diferentes ele incrementa o primeiro registro e o segundo fica zerado, como se não tivesse passado valor ou valores inseridos estivessem incorretos index.php <?php include("class.php"); $conecta = new recordset(); $conecta->Conexao();?><html><head><meta charset="utf8"><title>Contagem regressiva - Jquery Countdown</title><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script><script type="text/javascript" src="js/jquery.countdown.js"></script></head><body><?php $sql = "SELECT * FROM ofertas"; $conecta->Resultados($sql);?></body></html> class.php <?php class recordset{ public $host = 'localhost'; public $user = 'root'; public $pass = ''; public $table = 'contagem'; function Conexao(){ mysql_connect($this->host, $this->user, $this->pass) or die ('Erro ao se conectar. '.mysql_error()); mysql_select_db($this->table) or die ('Erro ao selecionar tabela. '.mysql_error()); }//Termina function Conexao function Resultados($query){ $sql = mysql_query($query); while($res = mysql_fetch_array($sql)){ echo '<script type="text/javascript">'; echo '$(document).ready(function(){'; echo '$(\'#contagem\').countdown({date: \''.$res['final'].'\'}, function(){'; echo '$(\'#contagem\').text(\'Oferta finalizada\');'; echo '});'; echo '});'; echo '</script>'; echo '<div id="contagem">'; echo '<span class="dias">00</span> Dias '; echo '<span class="horas">00</span> horas '; echo '<span class="minutos">00</span> minutos e '; echo '<span class="segundos">00</span> segundos'; echo '</div><!--Fecha div contagem-->'; } }//Termina function Seleciona }?> E o arquivo jquery.countdown.js (function($){ $.fn.countdown = function(options, callback){ var settings = {'date': null}; if(options){ $.extend(settings, options); } this_sel = $(this); function count_exec(){ eventDate = Date.parse(settings['date']) / 1000; currentDate = Math.floor($.now() / 1000); if(eventDate <= currentDate){ callback.call(this) clearInterval(intval); } segundos = eventDate - currentDate; dias = Math.floor(segundos / (60 * 60 * 24)); segundos -= dias * 60 * 60 * 24; horas = Math.floor(segundos / (60 * 60)); segundos -= horas * 60 * 60; minutos = Math.floor(segundos / 60); segundos -= minutos * 60; dias =(String(dias).length !== 2) ? '0' + dias : dias; horas =(String(horas).length !== 2) ? '0' + horas : horas; minutos =(String(minutos).length !== 2) ? '0' + minutos : minutos; segundos =(String(segundos).length !== 2) ? '0' + segundos : segundos; if(!isNaN(eventDate)){ this_sel.find('.dias').text(dias); this_sel.find('.horas').text(horas); this_sel.find('.minutos').text(minutos); this_sel.find('.segundos').text(segundos) } } count_exec(); interval = setInterval(count_exec, 1000); }})(jQuery); Não tenho a menor ideia do que possa ser, alguém pode me ajudar? Up! Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Outubro 10, 2013 O problema não é com PHP, é com o JS. Você está setando como referência o elemento com o id contagem, mas semanticamente o ID é único na página, por isto acontece o que você citou, neste caso você terá que criar esses ids de firma dinâmica para diferenciar os diversos contadores. Compartilhar este post Link para o post Compartilhar em outros sites
charleskx 4 Denunciar post Postado Outubro 10, 2013 O problema não é com PHP, é com o JS. Você está setando como referência o elemento com o id contagem, mas semanticamente o ID é único na página, por isto acontece o que você citou, neste caso você terá que criar esses ids de firma dinâmica para diferenciar os diversos contadores. Poderia explicar como faria isso pelo JS? Não tenho a menor ideia. Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Outubro 10, 2013 Explicar o que? Você não entendeu nada do que eu falei. O problema é o ID repetido, só isto. Crie ele de forma dinâmica dentro do laço (use um contador ou o ID da tabela) e pronto, vai funcionar, óbvio que se você tem 2 contadores você terá quer chamar 2 vezes a função que faz o contador funcionar.. Compartilhar este post Link para o post Compartilhar em outros sites