Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/09/2008, 15:26
rProgged
 
Fecha de Ingreso: agosto-2004
Mensajes: 131
Antigüedad: 20 años, 3 meses
Puntos: 2
(SOLUCIONADO) FusionCharts + AJAX, no funciona =(

Holas,

Intentaré explicar lo mejor posible mi problema: No me funciona el FusionCharts cuando intento ejecutarlo desde una pagina generada con AJAX

trabajo con ASP Clasico, las página se crea en 3 niveles:

1.- En el nivel 1 tengo los filtros de datos y un iframe

2.- El nivel 2 se encuentra en el iframe, aca tengo una pagina asp que en el body tiene una funcion que llama al contenido de la pagina mediante AJAX

3.- En el nivel 3 tengo la pagina ASP que genera el contenido del nivel 2.

El problema se produce al generar los contenidos del nivel 2 mediante ajax (llamando al nivel 3), uso la API Prototype y la implemento en un codigo como el que sigue:

Código:
function getHTMLContent(form, destino) {
	var parametros = Form.serialize($(form));
	new Ajax.Updater( destino, 'resultados.asp', { method: 'post', parameters: parametros });
}
...
<body onLoad="getHTMLContent('grafico', 'div-contenido')">
...
Todo el cuento que tengo es que en el contenido de la página necesito mostrar unos gráficos pero no funcionan, los gráficos no aparecen sino la palabra "Graph"...

Ahora bien, si muestro el contenido de la pagina directamente en el nivel 2 sin pasar por AJAX entonces los gráficos aparecen sin ningún problema. A mi se me imagina que es un problema de ejecución, por que los gráficos son llamados mediante objetos javascript, entonces pienso que de pronto estoy intentando llamar a un objeto desde otro objeto y quizás eso no se pueda. Pero sólo son conjeturas por que en realidad desconozco el origen del error

De todas formas, FusionCharts genera sus gráficos mediante el siguiente codigo:

Código:
<!-- START Script Block for Chart acertividadJefe -->
	<div id='acertividadJefeDiv' align='center'>
		Chart.
		
	</div>
		
	<script type="text/javascript">	
		//Instantiate the Chart	
		var chart_acertividadJefe = new FusionCharts("FusionCharts/FCF_Column3D.swf", "acertividadJefe", "880", "350");
		
		//Provide entire XML data using dataXML method 
		chart_acertividadJefe.setDataXML("<graph caption='% ACERTIVIDAD POR JEFATURA' xAxisName='Supervisor' yAxisName='Porcentaje Alcanzado' showNames='0' decimalPrecision='0' formatNumberScale='0'><set name='Alguna persona' value='50' color='AFD8F8' /></graph>");
				
		//Finally, render the chart.
		chart_acertividadJefe.render("acertividadJefeDiv");
	</script>	
	<!-- END Script Block for Chart acertividadJefe -->
Como se darán cuenta, este codigo se ejecuta dentro del Ajax.Updater() por lo que creo que por ese lado va el problema.

El otro tema es que el informe es bastante pesado y se debe demorar unos 5-10 segundos en aparecer la información completa, por eso la idea era obtenerlo mediante AJAX para poder mostrar al usuario algo de retroalimentación mientras se termina de generar el informe.

Espero que alguien haya podido realizar algo como esto y pueda ayudarme a solucionar el problema, de todas maneras cualquier comentario o duda sera bienvenido y profundamente agradecido.

Saludos cordiales,

Rodrigo

Última edición por rProgged; 02/09/2008 a las 11:01 Razón: problema resuelto :D