Hola utilizo esta funcion de ajax:
Código HTML:
var http_request = false;
function makeRequest(url)
{
http_request = false;
if (window.XMLHttpRequest)
{ // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType)
{
http_request.overrideMimeType("text/xml");
// Ver nota sobre esta linea al final
}
}
else if (window.ActiveXObject)
{ // IE
try
{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
}
}
}
if (!http_request)
{
alert("ERROR :( No es posible crear una instancia XMLHTTP");
return false;
}
http_request.onreadystatechange = alertContents;
http_request.open("GET", url, true);
http_request.send(null);
}
function alertContents()
{
if (http_request.readyState == 4)
{
if (http_request.status == 200)
{
alert(http_request.responseText);
}
else
{
alert("Hubo problemas con la petición.");
}
}
}
function XHConn()
{
var xmlhttp, bComplete = false;
try
{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
try
{
xmlhttp = new XMLHttpRequest();
}
catch (e)
{
xmlhttp = false;
}
}
}
if (!xmlhttp) return null;
this.connect = function(sURL, sMethod, sVars, fnDone)
{
if (!xmlhttp) return false;
bComplete = false;
sMethod = sMethod.toUpperCase();
try
{
if (sMethod == "GET")
{
xmlhttp.open(sMethod, sURL+"?"+sVars, true);
sVars = "";
}
else
{
xmlhttp.open(sMethod, sURL, true);
xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
}
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && !bComplete)
{
bComplete = true;
fnDone(xmlhttp);
}
};
xmlhttp.send(sVars);
}
catch(z)
{
return false;
}
return true;
};
return this;
}
function cargar_contenido(target, url)
{
document.getElementById(target).innerHTML = "<p>Cargando...</p>";
var myConn = new XHConn();
if (!myConn) alert("XMLHTTP no esta disponible. Inténtalo con un navegador más actual.");
var peticion = function (oXML)
{
document.getElementById(target).innerHTML = oXML.responseText;
};
myConn.connect(url, "GET", "", peticion);
}
para cargar en diferentes divs diferentes includes, esto funciona, el problema lo tengo en una parte del codigo donde cargo dos divs dentro de un div, por defecto quiero que se me muestre lo que hay en los 2 divs y cuando se le de a cierto enlace se cargue en el div principal, esto funciona, pero cuando doy a otro enlace, despues de haber cargado el div principal, donde se me deberia cargar los 2 divs, no hace nada, la extructura es esta:
Código HTML:
<div id="principal">
<div id="interno 1">
<?php include('pagina1.php'); ?>
</div>
<div id="interno 2">
<?php include('pagina2.php'); ?>
</div>
</div>
enlace1 apunta al div principal
enlace2 apunta al div interno 2
enlace3 apunta al div interno 2
enlace4 apunta al div interno 2
....
Nada mas se abre la página se carga lo que hay en los divs interno (el div interno 1 puede ser una foto que va cambiando segun se escoja un elace)
cuando le damos al enlace1 se carga en el div principal comiendose los divs internos, pero si le doy por ejemplo al enlace4, no hace nada se sigue mostrando el enlace 1 cuando deberia mostramerme lo del enlace4
El problema creo q es que cuando le doy al enlace1 el div principal se come el codigo de los divs internos y al intentar cargar los enlaces al no existir dicho divs no hace nada
Como puedo solucionar esto, alguien tiene alguna idea, gracias
bichomen