Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks JS (http://www.forosdelweb.com/f127/)
-   -   Return + Ajax (http://www.forosdelweb.com/f127/return-ajax-559107/)

Fabian olmos 21/02/2008 07:37

Return + Ajax
 
saludos a todos, haber si me pueden ayudar con este problemita que tengo. me encuentro haciendo una funcion en ajax que funciona a la perfeccion , el probelma se presenta cuando quiero retorna el valor que se trajo de mi pagina en PHP. siempre me retorna NULL y no encuentro la forma de evaluar ese valor.

aqui les adjunto la funcion y gracias de antemano.

Código PHP:

/*
    funcion utilizada para la validacion 
    de la fecha.
*/
function checkdate(){
 var 
oXHR zXmlHttp.createRequest();
 var 
dia  document.getElementById('sDia'); 
 var 
mes  document.getElementById('sMes'); 
 var 
year document.getElementById('txtYear');
 var 
url  null;
 var 
content document.getElementById('contenedor');
 
rand parseInt((Math.random()*999999999));
 
url  'inc/isvaliddate.php?d='+encodeURIComponent(dia.value)+'&m='+encodeURIComponent(mes.value)+'&a='+encodeURIComponent(year.value)+'&rand='+encodeURIComponent(rand);
 
oXHR.open('GET',url,true);
 
oXHR.onreadystatechange = function () {
     if(
oXHR.readyState == 4){
                 var 
boolean oXHR.responseXML.getElementsByTagName('boolean');
                return (
boolean[0].childNodes[0].nodeValue) ;
        }
 }
 
oXHR.send(null);



GatorV 21/02/2008 11:01

Re: Return + Ajax
 
Tu problema es que la función onreadystatechange no regresa ningún valor si no que tu debes de asignarlo a una variable, prueba este código:
Código:

var result = false;
function checkdate(){
 var oXHR = zXmlHttp.createRequest();
 var dia  = document.getElementById('sDia');
 var mes  = document.getElementById('sMes');
 var year = document.getElementById('txtYear');
 var url  = null;
 var content = document.getElementById('contenedor');
 rand = parseInt((Math.random()*999999999));
 url  = 'inc/isvaliddate.php?d='+encodeURIComponent(dia.value)+'&m='+encodeURIComponent(mes.value)+'&a='+encodeURIComponent(year.value)+'&rand='+encodeURIComponent(rand);
 oXHR.open('GET',url,true);
 oXHR.onreadystatechange = function () {
    if(oXHR.readyState == 4){
                var boolean = oXHR.responseXML.getElementsByTagName('boolean');
                result = (boolean[0].childNodes[0].nodeValue);
                alert( result );
        }
 }
 oXHR.send(null);
}

Con eso podrás ver el resultado, ahora recuerda que AJAX la ventaja que tiene es que es Asyncrono, por lo que el resultado de la función lo veras hasta que el servidor regrese el resultado.

Saludos.


La zona horaria es GMT -6. Ahora son las 08:49.

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