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

Pasar valores entre funciones

Estas en el tema de Pasar valores entre funciones en el foro de Frameworks JS en Foros del Web. Hola, tengo el siguiente codigo que me carga una pagina en ASP para unos datos de un formulario, funciona perfectamente, lo que quiero hacer es ...
  #1 (permalink)  
Antiguo 17/01/2009, 22:14
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 4 meses
Puntos: 16
Pasar valores entre funciones

Hola, tengo el siguiente codigo que me carga una pagina en ASP para unos datos de un formulario, funciona perfectamente, lo que quiero hacer es poder utilizar el mismo codigo en diferentes partes de la pagina, les paso el codigo:
Código lenguaje:
Ver original
  1. function GetXmlHttpObject(handler)
  2. {
  3.    var objXMLHttp=null
  4.    if (window.XMLHttpRequest)
  5.    {
  6.        objXMLHttp=new XMLHttpRequest()
  7.    }
  8.    else if (window.ActiveXObject)
  9.    {
  10.        objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
  11.    }
  12.    return objXMLHttp
  13. }
  14.  
  15. function stateChanged()
  16. {
  17.    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
  18.    {
  19.      document.getElementById(caja).innerHTML= xmlHttp.responseText;
  20.    }
  21.    else {
  22.      //alert(xmlHttp.status);
  23.    }
  24. }
  25.  
  26.  
  27. // Will populate data based on input
  28. function htmlData(url, caja, qStr)
  29. {
  30.    if (url.length==0)
  31.    {
  32.        document.getElementById(caja).innerHTML="";
  33.        return;
  34.    }
  35.    xmlHttp=GetXmlHttpObject()
  36.    if (xmlHttp==null)
  37.    {
  38.        alert ("Su navegador no soporta este tipo de procedimiento, por favor actualice el mismo.");
  39.        return;
  40.    }
  41.    
  42.    var caja=caja;
  43.    url=url+"?"+qStr;
  44.    url=url+"&sid="+Math.random();
  45.    xmlHttp.onreadystatechange=stateChanged;
  46.    
  47.    xmlHttp.open("GET",url,true) ;
  48.    xmlHttp.send(null);
  49. }

y lo llamo asi:
<input name="CP" type="text" onchange="htmlData('cambia.asp', 'colonia' , 'CP='+CP.value)" />

Lo que quiero hacer es cambiando donde dice colonia se cambie el DIV donde se mostrara el resultado, si lo pongo fijo funciona, como puedo hacerlo dinamico?

en la funcion htmldata si toma el valor que le mando pero ya en la funcion stateChange no se como enviarla o tomarla espero me haya explicado, desde ya mil gracias
  #2 (permalink)  
Antiguo 17/01/2009, 22:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Pasar valores entre funciones

Lo que puedes hacer es hacer caja global, o en dado caso pasarla en la funcion dentro de la closure:
onreadystatechange = function() { stateChanged( xmlHttp.responseText, caja); }

Saludos
  #3 (permalink)  
Antiguo 17/01/2009, 22:43
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 4 meses
Puntos: 16
Respuesta: Pasar valores entre funciones

y como quedaria la funcion stateChange? igual?

ahora esta asi:
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById(caja).innerHTML= xmlHttp.responseText;
alert(caja);
}
else {
//alert(xmlHttp.status);
}
}
__________________
CreandoWebs.com
www.creandowebs.com
PLANTILLAS TEMPLATEMONSTER CON 10% DE DESCUENTO
  #4 (permalink)  
Antiguo 18/01/2009, 00:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Pasar valores entre funciones

Cambia la firma de la funcion tambien, function stateChanged(xmlHttp, caja).

Saludos
  #5 (permalink)  
Antiguo 18/01/2009, 21:29
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 4 meses
Puntos: 16
Respuesta: Pasar valores entre funciones

la puse asi y parece que funciona, la seguire probando

function stateChanged(proceso, caja)
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
// document.getElementById(caja).innerHTML= xmlHttp.responseText;
document.getElementById(caja).innerHTML=proceso
}
else {
//alert(xmlHttp.status);
}
}
__________________
CreandoWebs.com
www.creandowebs.com
PLANTILLAS TEMPLATEMONSTER CON 10% DE DESCUENTO
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 19:57.