Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks JS (http://www.forosdelweb.com/f127/)
-   -   script de ajax que no funciona (http://www.forosdelweb.com/f127/script-ajax-que-no-funciona-517241/)

Jesica 06/09/2007 08:09

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> 


gvargas 06/09/2007 08:28

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

Jesica 06/09/2007 11:06

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>


gvargas 06/09/2007 12:20

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

MaBoRaK 06/09/2007 17:00

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.


La zona horaria es GMT -6. Ahora son las 07:52.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.