Aquí les dejo el código, abajo los comentarios.
Código:
addEvent(window,'load',inicializarEventos,false);
function inicializarEventos()
{
// Mostramos los comentarios actuales
// Asignamos el evento Onclick al boton1
var $ob0=document.getElementById('enlaceA');
addEvent($ob0,'click',presionBotonA,false);
cargarPrograma('php/consultaA.php') ;
}
//Presionaron un Boton
function presionBotonA(e)
{
cargarPrograma('php/consultaA.php') ;
}
//La variable es global para los manejos de eventos
var $conexion0;
function cargarPrograma(url)
{
if(url=='')
{
return;
}
$div= "divPrograma";
$conexion0=crearXMLHttpRequest();
$conexion0.onreadystatechange = procesarEventos;
$conexion0.open("GET", url, true);
$conexion0.send(null);
}
function procesarEventos()
{
var $idDivPrograma = document.getElementById($div);
if($conexion0.readyState == 4)
{
if($conexion0.status==200)
{
$idDivPrograma.innerHTML = $conexion0.responseText;
}else if($conexion0.status==404){
$idDivPrograma.innerHTML = 'La direccion no existe';
}else {
$idDivPrograma.innerHTML = 'Error: '.$conexion0.status;
}
}
else
{
$idDivPrograma.innerHTML ='<img src="/MI3/img/cargando.gif">';
}
}
//***************************************
//Funciones comunes a todos los problemas
//***************************************
function addEvent(elemento,nomevento,funcion,captura){
if (elemento.attachEvent) {
elemento.attachEvent('on'+nomevento,funcion);
return true;
} else
if (elemento.addEventListener) {//
elemento.addEventListener(nomevento,funcion,captura);
return true;
}
else
return false;
}
function crearXMLHttpRequest() {
var xmlHttp=null;
if (window.ActiveXObject)
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
else
if (window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
return xmlHttp;
}
Se me presenta la siguiente incógnita, quiero usar la funcion
procesarEventos() para instancias varias conexiones de AJAX, y por su puesto la idea es no copiar el código varias veces.
El primer problema que tengo es que si le paso el ID del Div como parámetro a la función, se queda en un loop, y no me muestra nada. Lo que tuve que hacer fue llenar una variable local
$div y llamarla desde la función
procesarEventos(), de esta forma se resolvió el problema, pero mi pregunta es por qué no puedo pasar la variable cuando llamo a la función
procesarEventos()???.
Ahora faltaría resolver lo de la variable global
$conexion0, ya que si hago lo mismo que el caso anterior no me funciona la llamada al archivo.
Como podría arreglar la función
procesarEventos() para que se pueda instaciar para llevar varios Divs, con paginas diferentes.
Gracias..