Atualizar resultado da busca sem refresh
Ola Amigos!
Estou fazendo uma Consulta no Banco MYSQL e retornando o resultado dentro de uma div
$sql=mysql_query("SELECT * FROM tabela WHERE MONTH(aniversario) = MONTH(NOW()) ORDER BY RAND() ASC")
$vetor=mysql_fetch_array($sql);
echo'<div><img src="'.$vetor['foto'].'" border="0"><br>$vetor['nome']';
Eu gostaria de um jeito de refazer esta mesma consulta a cada 10 segundos e retornar o novo resultado sem dar refresh na pagina.
É bem provável que alguém vai dizer:
Faça isso usando AJAX!
Mas já faz algum tempo que estou procurando um exemplo no google e não encontrei nada que me ajuda-se, mesmo porque não manjo nada de ajax
Encontrei um exemplo na web que faz o que estou precisando mas não manjo de AJAX e o script era parte de um sistema de cadastro...
tá funcionando direitinho mas não sei se tem codigo sobrando ...
Se alguém puder da uma verificada agradeço
index.php
<script>
setInterval("messages()", 5000);
function messages(){
var body = "";
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} else {
alert("Seu navegador não suporta XMLHttpRequest.");
return;
}
xmlhttp.open("POST", "pagina.php", true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
xmlhttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
xmlhttp.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
xmlhttp.setRequestHeader("Pragma", "no-cache");
xmlhttp.onreadystatechange = processReqChange;
xmlhttp.send(null);
}
function processReqChange() {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
document.getElementById("texto").innerHTML = xmlhttp.responseText;
document.getElementById("mensagem").value = document.getElementById("mensagem").value;
} else {
alert("Problemas ao carregar o arquivo.");
}
}
}
//-->
</script>
<div id="texto">
<?php
include('conecta.php');
$sql=mysql_query("SELECT * FROM tabela WHERE MONTH(aniversario) = MONTH(NOW()) ORDER BY RAND() ASC")
$vetor=mysql_fetch_array($sql);
echo'<img src="'.$vetor['foto'].'" border="0">';
echo $vetor['nome'];
?>
</div>
pagina.php
<?php
include('conecta.php');
$sql=mysql_query("SELECT * FROM tabela WHERE MONTH(aniversario) = MONTH(NOW()) ORDER BY RAND() ASC")
$vetor=mysql_fetch_array($sql);
echo'<img src="'.$vetor['foto'].'" border="0">';
echo $vetor['nome'];
?>
Tive que repetir a consulta dentro da div texto porque ela iniciava em branco.
Ta funcionando mas se aguem puder ta uma olhada se o scritp ta certo agradeço. http://forum.imasters.com.br/public/style_emoticons/default/grin.gif
E aproveitando eu gostaria de saber se tem jeito de fazer com que o nome e a foto do usuario aparecer devagar como se estivesse surgindo ... eu nem sei como devo pesquisar pra fazer isso? :blink:
Obrigado!
Discussão (4)
Carregando comentários...