Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/06/2010, 03:55
sitoatic
 
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 1
Loco con el #hash

Buenas, me estoy volviendo loco con el #hash, y es que no me hace ningún caso!

Lo que quiero es que cuando clicke en la opción del menú ajax, pues evidentemente la url se actualice con el hash sin recargar la web.

Tengo 2 capas en la libreriaAjax.js, la capaContenedoraMenu y la capaContenedora, que es la que actualiza cuando elegimos del menú. Aquí lo podéis ver:

Código:
function creaAjax(){
  var objetoAjax=false;
  try {
   /*Para navegadores distintos a internet explorer*/
   objetoAjax = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
   try {
     /*Para explorer*/
     objetoAjax = new ActiveXObject("Microsoft.XMLHTTP");
     } 
     catch (E) {
     objetoAjax = false;
   }
  }

  if (!objetoAjax && typeof XMLHttpRequest!='undefined') {
   objetoAjax = new XMLHttpRequest();
  }
  return objetoAjax;
}


function FAjax (url,capa,valores,metodo)
{
   var ajax=creaAjax();
   var capaContenedora = document.getElementById(capa);
   			
/*Creamos y ejecutamos la instancia si el metodo elegido es GET*/
	if (metodo.toUpperCase()=='GET'){
		ajax.open ('GET', url, true);
		ajax.onreadystatechange = function() {
			 if (ajax.readyState==1) {
					 capaContenedora.innerHTML="<img src=imagenes/cargando.gif>";
			 }
			 else if (ajax.readyState==4){
				if(ajax.status==200){ 
					 document.getElementById(capa).innerHTML=ajax.responseText; 
				}
				else if(ajax.status==404)
					 {
	
						 capaContenedora.innerHTML = "La direccion existe";
					 }
					 else
					 {
						 capaContenedora.innerHTML = "Error: ".ajax.status;
					 }
			}
		}
		ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		ajax.send(null);
		return
	}
}

function FAjaxMenu (url,capa,valores,metodo)
{
   var ajax=creaAjax();
   var capaContenedoraMenu = document.getElementById(capa);

/*Creamos y ejecutamos la instancia si el metodo elegido es GET*/
	if (metodo.toUpperCase()=='GET'){
		ajax.open ('GET', url, true);
		ajax.onreadystatechange = function() {
			 if (ajax.readyState==1) {
					 capaMenu.innerHTML="<img src=imagenes/cargando.gif>";
			 }
			 else if (ajax.readyState==4){
				if(ajax.status==200){ 
					 document.getElementById(capa).innerHTML=ajax.responseText; 
				}
				else if(ajax.status==404)
					 {
	
						 capaMenu.innerHTML = "La direccion existe";
					 }
					 else
					 {
						 capaMenu.innerHTML = "Error: ".ajax.status;
					 }
			}
		}
		ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		ajax.send(null);
		return
	}
}

Y el código del menú es, os pongo sólo la parte que debería actualizar el hash:

Código:
<tr>
<td width="180" class="menu-td"><a href="#sport=<?php echo $deporte; ?>&country=<?php echo $pais; ?>&league=<?php echo $liga; ?>&event=<?php echo $evento; ?>&ref=<?php echo $afiliado; ?>" onClick="FAjax('sportsbetting-event.php?sport='+ '<?php echo $deporte; ?>'+'&amp;country='+ '<?php echo $pais; ?>'+'&amp;league='+ '<?php echo $liga; ?>'+'&amp;event='+ '<?php echo $evento; ?>'+'&amp;ref='+ '<?php echo $afiliado; ?>' ,'capaContenedora','','get'); return false"><?php echo $evento; ?></a></td>
</tr>
No sería esto suficiente para que al clickar en la opción del menú, además de actualizar la capaContenedora (que ya me funciona bien), actualizará la url con el hash a partir del # ¿?¿?

Muchas gracias amigos, como siempre por la ayuda.

Última edición por sitoatic; 18/06/2010 a las 03:57 Razón: Para que se vea mejor el código