Utilizo la siguiente funcion para realizar unos combos anidados, la mando llamar con el evento Onchange para mandar llamar al siguiente combo.
A veces la capa se traba y se queda con el texto "Cargando...." osea en este pedazo de codigo,
Código PHP:
if (ajax.readyState==1) {
capaContenedora.innerHTML="Cargando.......";
}
Como seria? Si la peticion no se cargoo ay error hacer la peticion nuevamente?
Investigue y estos son los estados:
Cita:
0: "Uninitialized", el objeto aún no se ha inicializado.
1: "Loading", se estan cargando los datos.
2: "Loaded", se han cargado los datos.
3: "Interactive", el usuario puede interactuar con el objeto, pero aún no está cargado completamente.
4: "Complete", el objeto se ha cargado completamente.
1: "Loading", se estan cargando los datos.
2: "Loaded", se han cargado los datos.
3: "Interactive", el usuario puede interactuar con el objeto, pero aún no está cargado completamente.
4: "Complete", el objeto se ha cargado completamente.
Aqui les dejo el codigo de la libreria seguramente algunos ya la abran utilizado
Código PHP:
/*
*Esta libreria es una libreria AJAX creada por Javier Mellado con la inestimable
*colaboracion de Beatriz Gonzalez.
*descargada del portal AJAX Hispano http://www.ajaxhispano.com
*contacto [email protected]
*
*Puede ser utilizada, pasada, modificada pero no olvides mantener
*el espiritu del software libre y respeta GNU-GPL
*/
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 POST*/
if(metodo.toUpperCase()=='POST'){
ajax.open ('POST', url, true);
ajax.onreadystatechange = function() {
if (ajax.readyState==1) {
capaContenedora.innerHTML="Cargando.......";
}
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(valores);
return;
}
/*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="Cargando.......";
}
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
}
}