El archivo php se encargará de mostrar el menú fijo si no le pasa por método GET nada,pero en el caso que se le pase algo,se cargará por ajax en un Div.
El archivo functions.js se encarga de realizar todas las funciones Javascript necesarias,en este caso son tres:
- Generar el objeto XHR: Funcion objetoAjax()
- Asignarle un nombre al objeto y generar:Funcion menuhorizontal()
- Devolver la respuesta del servidor y esa respuesta meterlo en un div.
functions.js:
Cita:
function objetoAjax() {
var xmlhttp = false;
try {
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
} catch (E) {
try {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (Err) {
xmlhttp=false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
};
function menuhorizontal(direccion,target1) {
var ajax = objetoAjax();
ajax.open("GET",direccion);
ajax.send(null);
ajax.onreadystatechange = respuesta(target1,ajax);
};
function respuesta(targetcontent,ajax) {
targetcontent = document.getElementById(targetcontent);
if (ajax.readyState==1) {
content.innerHTML="Cargando...";
} else if (ajax.readyState==2) {
content.innerHTML="Estado 2...";
} else if (ajax.readyState==3) {
content.innerHTML="Estado 3...";
} else if (ajax.readyState==4) {
content.innerHTML=ajax.responseText;
};
};
Como podeis ver,por metodo GET al servidor,en que Div será cargado todo el contenido de Ajax.function objetoAjax() {
var xmlhttp = false;
try {
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
} catch (E) {
try {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (Err) {
xmlhttp=false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
};
function menuhorizontal(direccion,target1) {
var ajax = objetoAjax();
ajax.open("GET",direccion);
ajax.send(null);
ajax.onreadystatechange = respuesta(target1,ajax);
};
function respuesta(targetcontent,ajax) {
targetcontent = document.getElementById(targetcontent);
if (ajax.readyState==1) {
content.innerHTML="Cargando...";
} else if (ajax.readyState==2) {
content.innerHTML="Estado 2...";
} else if (ajax.readyState==3) {
content.innerHTML="Estado 3...";
} else if (ajax.readyState==4) {
content.innerHTML=ajax.responseText;
};
};
El problema no puede estar en el archivo PHP ya que si abro una pagina con la direccion que se le pasa a menuhorizontal,todo me funciona pero cuando lo hago con Ajax no hace nada.
Lo unico que hace es quedarse todo el rato en cargando...
¿Como puedo solucionarlo,donde puede estar el fallo?
Gracias