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

Funciones javascript con variables globales

Estas en el tema de Funciones javascript con variables globales en el foro de Frameworks JS en Foros del Web. Estimados, junto con saludarlos tengo la siguiente consulta: Tengo una funcion historial_x_run() que me entrega una lista de datos y la voy pintando en la ...
  #1 (permalink)  
Antiguo 15/06/2011, 09:42
 
Fecha de Ingreso: octubre-2009
Mensajes: 39
Antigüedad: 14 años, 6 meses
Puntos: 0
Funciones javascript con variables globales

Estimados, junto con saludarlos tengo la siguiente consulta: Tengo una funcion historial_x_run() que me entrega una lista de datos y la voy pintando en la funcion armar_historial(). Dentro de esta última función necesito llamar a la función documentos_xsolicitud() que me entrega otra lista de datos en la función llenardoc() .Declaré una variable global docxsol que lleno con los datos entregados en la función llenardoc(). El tema es que cuando trato de utilizarla en la función armar_historial() al imprimir me da "undefined" ¿Como puedo utilizarla entonces si la declaré de forma global?

Declaro a continuacuón las funciones que estoy utilizando:

Código:
function historial_x_run(causante){
    $.post("proxy.php",
    {
        'accion': 'historial_x_run',
        'run': causante
    },
    armar_historial)
}

function documentos_xsolicitud(runcausante){
	$.post("proxy.php",
    {
        'accion': 'documentos_xsolicitud',
        'run': runcausante
    },
	llenardoc)	
}

function llenardoc(lista){
	docxsol = lista;
	//alert(docxsol);
	//return docxsol;
}

function armar_historial(lista_solicitudes){

	//alert("lista_solicitudes: "+ lista_solicitudes);
    //alert("jsn: "+ jsn);
    var aux = JSON.parse(lista_solicitudes);

    if(aux.exito=="TRUE"){
        var lista = JSON.stringify(aux.listado);
		
		
		//alert(aux.listado); // elementos del json
		var runcausante = $("#run_causante").val();
		//alert($("#run_causante").val());
		
		var count = 0;
	    for (var k in aux.listado) {
			count++;
		}
		//alert(count); // cantidad de solicitudes
		var arraySolicitudes = new Array(count);
		//alert(arraySolicitudes.length);  largo del arreglo

		$(aux.listado).each(function(i, e){
			//alert(e.folio);
			//tr += "<tr><td>" + arraySolicitudes[i] + "</td><td>" + e.cantidad + "</td><td>" + "</tr>";
			arraySolicitudes[i] = e.Ticket;
		});
		
		// cada tr es el numero de solicitud y cada td son los documentos por solicitud
		
alert(docxsol);
		
		
	}	
       
}
Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 15/06/2011, 09:45
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 12 años, 11 meses
Puntos: 343
Respuesta: Funciones javascript con variables globales

Podes acceder a las variables globales desde cualquier ámbito.

Mi pregunta, por qué no usas un objeto para encapsular el estado (tu variable global) y su comportamiento (los métodos que expones)?.

Saludos.
__________________
blog | @aijoona
  #3 (permalink)  
Antiguo 15/06/2011, 09:54
 
Fecha de Ingreso: octubre-2009
Mensajes: 39
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Funciones javascript con variables globales

El tema es que si lo imprimo de la funcion llenardoc() me muestra el objeto json
pero si lo imprimo desde la funcion que lo necesito que es en armar_historial me imprime undefined.
  #4 (permalink)  
Antiguo 15/06/2011, 10:24
 
Fecha de Ingreso: octubre-2009
Mensajes: 39
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Funciones javascript con variables globales

Yo creo que es un tema de variables globales porque donde necesito imprimir me sale undefined. Gracias por sus ayudas.
  #5 (permalink)  
Antiguo 15/06/2011, 10:44
 
Fecha de Ingreso: octubre-2009
Mensajes: 39
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Funciones javascript con variables globales

A pesar de no tener mucha ayuda, pude lograr encontrar la solución a este problema. El tema es que tenia que llamar a una función antes que la otra. Gracias.
  #6 (permalink)  
Antiguo 15/06/2011, 10:59
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 12 años, 11 meses
Puntos: 343
Respuesta: Funciones javascript con variables globales

Pensé que habías omitido la parte de la declaración 'global'.

Consejo, no uses globales implícitas (como lo haces con docxsol), inducen al error y van a ser 'removidas' en futuras implementaciones de ES.
__________________
blog | @aijoona
  #7 (permalink)  
Antiguo 15/06/2011, 11:02
Avatar de tredio  
Fecha de Ingreso: noviembre-2008
Ubicación: Carabobo
Mensajes: 466
Antigüedad: 15 años, 5 meses
Puntos: 66
Respuesta: Funciones javascript con variables globales

hola que tal, un consejo, las funciones JSON.parse y JSON.stringify no son compatibles con todos los navegadores, ya que estas usando jquery usa funciones que este framework dispone para ello:

http://api.jquery.com/jQuery.parseJSON/ es el equivalente a JSON.parse

no estoy seguro si hay una funcion equivalente ya integrada en el framework para JSON.stringify pero he visto varios plugins que te pueden servir para eso.
__________________
Extension Google Chrome
dar las gracias no cuesta nada :D

Etiquetas: funciones, globales, javascript, variables
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 18:53.