Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho um site pronto o qual a estrutura está mais ou menos assim:
<html>
<head>
<title>Teste</title>
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><a href="index.php?pag=pagina1">Página 1</a> | <a href="index.php?pag=pagina2">Página 2</a> </td>
</tr>
<tr>
<td>
<?php
$pag = $_GET["pag"];
switch($pag){
case "pagina1":
include "pagina1.php";
break;
case "pagina2":
nclude "pagina2.php";
break;
default:
include "home.php";
break;
}
?>
</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</body>
</html>Como adicionar Ajax para que as páginas (pagina1.php, pagina2.php) sejam carregadas na index.php sem refresh no site e com um loadzinho sem mudar muito a estrutura do site.Tenho um bom conhecimento em php, porém, em java quase não saio do lugar, se alguem puder me ajudar eu agradeço muito.
Só mais uma coisinha!!!
Eu acessei o meu painel de controle aqui do Forum iMasters e lá tem exatamente o que eu preciso.
No centro da página tem um menu e ao clicar em um link (Tópicos | Posts | Comentários | Amigos | Configurações), aparece uma mensagem de Carragando... e em seguida abre a página solicitada sem refresh no site, a diferença é que eu acho que busca informações em uma base de dados e eu preciso é incluir páginas.
Código final para quem precisar:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<title>Teste</title>
<script type="text/javascript">
var xmlhttp = getXmlHttpRequest();
function getXmlHttpRequest() if (window.XMLHttpRequest)
{
return new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
try
{
return new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
return new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){}
}
}
}
function requisicao(_strNomePagina) xmlhttp.open("GET", _strNomePagina, true);
xmlhttp.setRequestHeader("Content-Type", "text/html; charset=iso-8859-1");
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 = function()
{
if (xmlhttp.readyState==1)
{
document.getElementById("contents").innerHTML = "<img src='loading_bar.gif' /><br />Carregando...";
}
if (xmlhttp.readyState==4)
{
if (xmlhttp.status == 200) {
document.getElementById("contents").innerHTML = xmlhttp.responseText;
}
}
}
xmlhttp.send(null);
}
</script>
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td id="menu">
<a href="?pag=pagina1" onclick="requisicao('?pag=pagina1')">Página 1</a> |
<a href="?pag=pagina2" onclick="requisicao('?pag=pagina2')">Página 2</a> |
<a href="?pag=pagina3" onclick="requisicao('?pag=pagina3')">Página 3</a>
</td>
</tr>
<tr>
<td id="contents">
<?php
$pag = $_GET["pag"];
switch($pag){
case "pagina1":
include "pagina1.php";
break;
case "pagina2":
include "pagina2.php";
break;
case "pagina3":
include "pagina3.php";
break;
default:
include "home.php";
break;
}
?>
</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</body>
</html>Testado no IE e FF com javascript habilitado e desabilitado(óbvio que o ajax não funciona para este ultimo) e as páginas abrem beleza dentro da TD com id="conteudo".Testei também usando ao tabless e tudo filé.>
Testado no IE e FF com javascript habilitado e desabilitado(óbvio que o ajax não funciona para este ultimo) e as páginas abrem beleza dentro da TD com id="conteudo".
Testei também usando ao tabless e tudo filé.
Cara, parabéns, era isso que eu precisava... pois este código não grava no cache de jeito nenhum... é perfeito.... Milhares de pessoas (como eu) estão quebrando a cabeça na net procurando soluções para este problema de Cache x Ajax e você conseguiu.... Mais uma vez... Parabéns ! ahhh e OBRIGADO !
Bom eu não achei nada satisfatório para o meu caso na net então eu resolvi mesmo sem saber nada tentar montar alguma coisa com o que tem aqui, e deu isso:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
} //loading
case "pagina1":
case "pagina2":
default:
Gente por favor uma ajudinha pra um pobre aprendiz, COMO EU FAÇO ISSO FUNCIONAR?????