Bueno, te dejo un ejemplo de lo que pedías al principio (sólo deberás tener en cuenta que si el objetivo es que funcionen los botones atrás y adelante del navegador, si bien esto funcionará sin problemas a partir de explorer 8 y en general en todos los navegadores modernos, para versiones anteriores de explorer hay que hacer algunas cosas adicionales)
Código PHP:
<?php
if(isset($_GET['q'])){
switch($_GET['q']){
case 'a':
echo 'página a';
break;
case 'b':
echo 'página b';
break;
case 'c':
echo 'página c';
break;
case 'd':
echo 'página d';
break;
default:
echo 'contenido por defecto';
}
exit;
}
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ejemplo</title>
<style type="text/css">
.menu{ width:50px; line-height:20px; font-family:Verdana, Geneva, sans-serif; font-size:10px; background:#F93; cursor:pointer; text-align:center; float:left; margin-right:5px;}
#pp{ clear:both; margin-top:20px;}
</style>
<script type="text/javascript">
function http(){
if(typeof window.XMLHttpRequest!='undefined'){
return new XMLHttpRequest();
}else{
try{
return new ActiveXObject('Microsoft.XMLHTTP');
}catch(e){
alert('Su navegador no soporta AJAX');
return false;
}
}
}
function request(url,callback,params){
ns.p=params.q;
params.q=params.q.split('#').join('')
var H=new http();
if(!H)return;
var p='';
for(var i in params){
p+='&'+i+'='+escape(params[i]);
}
H.open('get',url+'?'+p+'&'+Math.random(),true);
H.onreadystatechange=function(){
if(H.readyState==4){
callback(H.responseText);
H.onreadystatechange=function(){}
H.abort();
H=null;
}
}
H.send(null);
}
var ns={}
ns.p=-1;
onload=function(){
setInterval(function(){if(location.hash!=ns.p){request('<?php echo basename($_SERVER['PHP_SELF']) ?>',function(r){document.getElementById('pp').innerHTML=r;},{'q':location.hash});};},4);
}
</script>
</head>
<body>
<div onclick="location.hash='a'" class="menu">a</div>
<div onclick="location.hash='b'" class="menu">b</div>
<div onclick="location.hash='c'" class="menu">c</div>
<div onclick="location.hash='d'" class="menu">d</div>
<div id="pp"></div>
</body>
</html>