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

Return + Ajax

Estas en el tema de Return + Ajax en el foro de Frameworks JS en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 21/02/2008, 07:37
 
Fecha de Ingreso: enero-2003
Ubicación: Caracas
Mensajes: 439
Antigüedad: 21 años, 9 meses
Puntos: 0
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);

  #2 (permalink)  
Antiguo 21/02/2008, 11:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
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.
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 13:54.