Retroceder   Foros del Web > Programación para sitios web > AJAX

Respuesta
 
Herramientas Desplegado
Antiguo 06-sep-2007, 08:09   #1 (permalink)
Jesica no se puede cailificar en este momento
 
Avatar de Jesica
 
Fecha de Ingreso: agosto-2007
Mensajes: 62
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> 
Jesica está desconectado   Responder Citando
Antiguo 06-sep-2007, 08:28   #2 (permalink)
gvargas no se puede cailificar en este momento
 
Avatar de gvargas
 
Fecha de Ingreso: octubre-2006
Ubicación: México D.F
Mensajes: 211
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
__________________
Solo con el corazón se puede ver bien.... lo escencial es invisible para los ojos.
Mi blog: http://vargasti.wordpress.com/
gvargas está desconectado   Responder Citando
Antiguo 06-sep-2007, 11:06   #3 (permalink)
Jesica no se puede cailificar en este momento
 
Avatar de Jesica
 
Fecha de Ingreso: agosto-2007
Mensajes: 62
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>
Jesica está desconectado   Responder Citando
Antiguo 06-sep-2007, 12:20   #4 (permalink)
gvargas no se puede cailificar en este momento
 
Avatar de gvargas
 
Fecha de Ingreso: octubre-2006
Ubicación: México D.F
Mensajes: 211
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
__________________
Solo con el corazón se puede ver bien.... lo escencial es invisible para los ojos.
Mi blog: http://vargasti.wordpress.com/
gvargas está desconectado   Responder Citando
Antiguo 06-sep-2007, 17:00   #5 (permalink)
MaBoRaK llegará a ser famoso muy prontoMaBoRaK llegará a ser famoso muy pronto
 
Avatar de MaBoRaK
 
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 1.782
Enviar un mensaje por MSN a MaBoRaK
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@maborak.com
http://www.maborak.com
Maborak technologies
MaBoRaK está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 08:40.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93