RMARLLEY 0 Denunciar post Postado Janeiro 17, 2008 Gostaria de criar um contador em tempo real que conta a quatidade de clientes inseridos na base e me dê a resposta sem precisar da refresh na página... tipo o contador do gmail do google www.gmail.com eu faço: CODE select count(*) from clientes e vai atualizando na página sempre que aparecer mais um no banco, sem precisar o cliente dá refresh! vlw galera... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
batatinha66 0 Denunciar post Postado Janeiro 18, 2008 tenta da setar um tempo pra da refresh automaticamente ueh! =] header("location: pagina.php",3); // 3 eh o tempo antes de dar o refresh nesse caso 3 segundos OBS: Nao ponha um tempo mt baixo se nao vai dar refresh toda hora e nao dara tempo de carregar a pagina OBS nº 2: voce acha que aquilo do gmail eh verdade???Observe k ele varia a um numero de 38 ou 39 =P Creio que de pra fazer por ajax tbm...nao sei pq nao intendo mt mais axo k da sim Compartilhar este post Link para o post Compartilhar em outros sites
Sadjow 1 Denunciar post Postado Janeiro 18, 2008 batatinha.... essa não é uma boa solução 1º se a pessoa tiver digitando algo num formulário vai perde todos os seus dados. 2º que vai dar refresh na página toda 3º que existe o AJAX Cara você tem que pesquisar um pouco sobre o ajax. você vai ter que usar o função AJAX que traga a resposta e ela sempre vai ficar exutando usando a função setInterval do javascript você colocar setInterval(funcaoChamaAjax(), 2000); // 2000 = 2 segundos = 2000 milisegundos essa função que chama o AJAX coloca a resposta do AJAX dentro da Div ou elemento com determinado id="id-do-elemento" usando o innerHTML do javascript. Acho que com isso você consegue o resto. Eu só não posso posta o código todo aqui! Valeus! Compartilhar este post Link para o post Compartilhar em outros sites
sedex 0 Denunciar post Postado Janeiro 18, 2008 Migão, vamos lá... Vou te mostrar uma estruta básica, mas funcional... ! Arquivo onde será exibido o número de usuários online. include_online.php <html> <head> <script src="ajaxInit.js" type="text/javascript"></script> <script src="usersCount.js" type="text/javascript"></script> </head> <body onload="contaUsuarios('usuariosOnline');"> <div> <span id="usuariosOnline"></span> <span>usuários online!</span> </div> </body> </html> Arquivo usersCount.js function contaUsuarios(spanID) { var usersCountTmpVar = document.getElementById(spanID); if(!usersCountTmpVar) { alert("Campo não encontrado"); return; //se ele não encontrar o campo, da um alerta e escapa a funcao } var ajaxUC = ajaxInit(); //inicia a variavel ajax para uso e UserCount ajaxUC.open("GET", "usersCount.php", true); ajaxUC.onreadystatechange = function() { //funcao executada ao trocar de stado if(ajaxUC.readyState == 4) { //verifica se o estado atual é "concluido" if(ajaxUC.status == 200) { //verifica se o arquivo foi lido corretamente usersCountTmpVar.innerHTML = ajaxUC.responseText + ""; //define o texto do span } setTimeout("contaUsuarios('" + spanID + "')", 2000); //reexecutar a funcao apos 2 segundos } } ajaxUC.send(null); //enviar dados para poder receber resposta } Arquivo usersCount.php <?php $gmtDate = gmdate("D, d M Y H:i:s"); header("Expires: {$gmtDate} GMT"); header("Last-Modified: {$gmtDate} GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); $timeExpire = 30; //tempo em segundos para expirar usuario $fileName = "online.txt"; //nome do arquivo a ser usado if(!file_exists($fileName)) { $f = fopen($fileName, "w"); fclose($f); } $ip = $_SERVER['REMOTE_ADDR']; //pegar ip do usuario $tempo = time(); //pegar o timespan $stringUser = $ip . ":" . $tempo; //concatenamos usando o caractere : como divisor $onlineNow = file_get_contents($fileName); //arquivo txt com dados de usuarios atuais $arrayNow = explode("|", $onlineNow); //o divisor usado para separar valores é | $newUsers = array(); //essa array irá gravar os usuarios ainda online //agora vamos filtrar os usuarios com timespan vencido foreach($arrayNow as $an) { list($tIP, $tTime) = explode(":", $an); //separamos usando o separador previamente definido if($tIP != NULL && $tTime != NULL && $tIP != $ip && $tTime > $tempo - $timeExpire) { $newUsers[] = $tIP . ":" . $tTime; //caso o usuario passe no teste, ele é adicionado } } $newUsers[] = $stringUser; //adicionando o usuario atual file_put_contents($fileName, implode("|", $newUsers)); //atualiza o arquivo echo count($newUsers); //escreve a quantidade de usuarios atual ?> Arquivo ajaxInit.js function ajaxInit() { var req; try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch(ex) { try { req = new XMLHttpRequest(); } catch(exc) { alert("Esse browser não tem recursos para uso do Ajax"); req = null; } } } return req; } e por último, crie um arquivo de texto, e cole o seguinte código 127.0.0.1:1151875739 depois salve com o nome de online.txt Nesta forma, todos os arquivos deveram estar na mesma pasta. Esse script é para o php5. Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
RMARLLEY 0 Denunciar post Postado Janeiro 18, 2008 WOW! Vou dar uma olhada nesse código sedex, naum tive tempo de testar mas prometo que vou tentar, naum conheco muito ajax, mas vou tentar... será que vou conseguir puxar as informações do banco?? prometo que tento... vlws! Compartilhar este post Link para o post Compartilhar em outros sites
Dórian Conde Langbeck 0 Denunciar post Postado Janeiro 19, 2008 depois q tiver um tempinho amigo, de uma lida nas Regras do Forum iMasters Abraços Compartilhar este post Link para o post Compartilhar em outros sites