Foros del Web » Programando para Internet » Javascript » Frameworks JS »

script de ajax que no funciona

Estas en el tema de script de ajax que no funciona en el foro de Frameworks JS en Foros del Web. Hola gente! Estoy empezando a ver un poco de ajax, y en un libro sobre el tema, encontre este ejemplo, pero no logro que funcione, ...
  #1 (permalink)  
Antiguo 06/09/2007, 08:09
Avatar de Jesica  
Fecha de Ingreso: agosto-2007
Mensajes: 78
Antigüedad: 16 años, 9 meses
Puntos: 0
script de ajax que no funciona

Hola gente!
Estoy empezando a ver un poco de ajax, y en un libro sobre el tema, encontre este ejemplo, pero no logro que funcione, no me muestra nada, ni me tira errores. ¿Que puede ser?
agradeceria mucho una ayudita.
saludos.

Código PHP:
<script type="text/javascript">
<!-
var 
XMLHttp=null
if (window.XMLHttpRequest) {
    
XMLHttp=new XMLHttpRequest()
    
alert('Mozilla / Safari / IE7 / etc')
    }
    else if (
window.ActiveXObject){
        
XMLHttp=new ActiveObject ("Microsoft.XMLHTTP")
        
alert('Internet Explorer')
    }
if (!
XMLHttp) {
    
alert('No se pudo crear la instancia');
}
//->

</script> 
  #2 (permalink)  
Antiguo 06/09/2007, 08:28
 
Fecha de Ingreso: octubre-2006
Ubicación: México D.F
Mensajes: 210
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: script de ajax que no funciona

Yo te recomiendo que uses la siguiente función en un archivo .js

Código PHP:
function getAjax(){
        var 
xmlhttp=false;
        try{
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); }
        catch(
e){
            try    {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }
            catch(
E) { xmlhttp=false; }
        }
        if (!
xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); }
        return 
xmlhttp;


En el header de tu pagina lo agregas....
Código PHP:
<script src="./archivo.js" type="text/javascript"></script> 
Luego generas una función js, la pones en tu header o nuevamente en el archivo js (yo creo que en este ultimo)

Por ejemplo:
Código PHP:
function PeticionAjax(){
        var 
obj;
                
obj getAjax();
        
obj.open("GET",  'script.php'true);
        
obj.onreadystatechange=function(){
                if (
obj.readyState == 1)
                    
alert ("La petición se esta procesando");

                 if (
obj.readyState == 4){                            
                                         
alert ("La petición ha finalizado !")

                 }
        }
    
obj.send(null);

Ahora la invocamos, por que pos si sola no hace nada..... por ejemplo al cargar la pagina,....

Código PHP:
<body onload="PeticionAjax();"
Y creo que eso es todo....

Despues hay que mostrar los resultados y todo eso rollo.

Un saludo
  #3 (permalink)  
Antiguo 06/09/2007, 11:06
Avatar de Jesica  
Fecha de Ingreso: agosto-2007
Mensajes: 78
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: script de ajax que no funciona

Gracias por la respuesta.

Pido disculpas por mandar tanto código, lo que pasa es que me compre un libro que viene con ejemplos, y no me funcionan, entonces quiero saber si esta mal el libro o que es lo que pasa. Les paso otro ejemplo, este me tira un error, me dice que esta en la linea 5(<body onLoad="cargarTexto();">) Error: se esperaba un objeto.
Desde ya muchas gracias!


Código HTML:
<html>
<head>
<title>Ajax</title>
</head>
<body onLoad="cargarTexto();">

<script type="text/javascript">
<!-

function crearInstancia() {
	XMLHttp = false;
	
	if (windows.XMLHttpRequest) {
		return new XMLHttpRequest();
}
	else if (windows.ActiveXObject) {
		var versiones = ["Msxml2.XMLHTTP.7.0","Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP"];
		for (var i=0;i<versiones.length;i++) {
				try {
					XMLHttp = new ActiveXObject(versiones[i]);
					if (XMLHttp) {
						return XMLHttp;
						break;
					}
				} catch (e) {} ;
			}
		}
}
function cargarTexto() {
	XMLHttp = crearInstancia();
	
	if (XMLHttp) {
		var url="Ejemplo.html"
		XMLHttp.open("GET",url,true)
		XMLHttp.onreadystatechange=cambiaEstado
		XMLHttp.send(null)
	} else {
		alert('No se pudo crear la instancia');
	}
}

function cambiaEstado() {
	if (XMLHttp.readyState==4) {
		document.getElementById("texto").innerHTML = "<strong>" + XMLHttp.responseText + "</strong>"
	}
}
//->
</script>



<SPAN ID="texto" NAME="texto"></SPAN>



</body>



</html> 
  #4 (permalink)  
Antiguo 06/09/2007, 12:20
 
Fecha de Ingreso: octubre-2006
Ubicación: México D.F
Mensajes: 210
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: script de ajax que no funciona

Dos cosas:

O la función crearInstancia no te esta devolviendo la instancia del Objeto XMLHttp o no tienes el archivo Ejemplo.html.

Otra cosa; te recomiendo que primero leas detenidamente el proposito y el objetivo de una petición por Ajax, que entiendas que es Ajax, luego la manera en que funciona.

Des esta forma podrás entender y detectar los mensajes por ti mism@.

Saludos
  #5 (permalink)  
Antiguo 06/09/2007, 17:00
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Re: script de ajax que no funciona

loading..............


Estas de cabeza... en este caso la funcion cargaTexto debe ir antes del body.... que libro compraste? :S de que año y autor es? para NO COMPRARLO.
Código HTML:
<html>
<head>
<title>Ajax</title>
<script type="text/javascript">
<!-

function crearInstancia() {
	XMLHttp = false;
	
	if (windows.XMLHttpRequest) {
		return new XMLHttpRequest();
}
	else if (windows.ActiveXObject) {
		var versiones = ["Msxml2.XMLHTTP.7.0","Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP"];
		for (var i=0;i<versiones.length;i++) {
				try {
					XMLHttp = new ActiveXObject(versiones[i]);
					if (XMLHttp) {
						return XMLHttp;
						break;
					}
				} catch (e) {} ;
			}
		}
}
function cargarTexto() {
	XMLHttp = crearInstancia();
	
	if (XMLHttp) {
		var url="Ejemplo.html"
		XMLHttp.open("GET",url,true)
		XMLHttp.onreadystatechange=cambiaEstado
		XMLHttp.send(null)
	} else {
		alert('No se pudo crear la instancia');
	}
}

function cambiaEstado() {
	if (XMLHttp.readyState==4) {
		document.getElementById("texto").innerHTML = "<strong>" + XMLHttp.responseText + "</strong>"
	}
}
//->
</script>
</head>
<body onLoad="cargarTexto();">





<SPAN ID="texto" NAME="texto"></SPAN>



</body>



</html> 


connection closed.
__________________

Maborak Technologies
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:15.