Estoy intentando hacer una gráfica en JSP con ayuda de la libreria Morris.js pero que sea generada mediante Ajax, soy bastante nueva en Ajax y todo lo que entiendo lo aprendí en la web.. el código que les pondré a continuación corre perfectamente de forma independiente.. pero cuando intento generarlo mediante ajax el div regresa vació..
Muchas gracias a todos de ante mano..
Saludos.!
Función ajax:
Código:
function xmlhttpPostGrafica(strURL) { variable1=document.getElementById('grarGrafico').value.trim(); if(variable1!="nada"){ var xmlHttpReq = false; var self = this; if (window.XMLHttpRequest) { self.xmlHttpReq = new XMLHttpRequest(); } else if (window.ActiveXObject) { self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); } self.xmlHttpReq.open('POST', strURL, true); self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); self.xmlHttpReq.onreadystatechange = function() { if (self.xmlHttpReq.readyState == 4) { updatepagePostGrafica(self.xmlHttpReq.responseText); } } self.xmlHttpReq.send(getquerystringPostGrafica()); }else{ document.getElementById("grafica").style.display = "none"; } } function getquerystringPostGrafica() { var form = document.forms['form1']; var año = form.catAñoReg.value; var aniodep = form.catAñoDep.value; qstr = 'anioreg=' + escape(año) + '&aniodep=' +escape(aniodep); return qstr; } function updatepagePostGrafica(str){ document.getElementById("grafica").innerHTML = str; document.getElementById("grafica").style.display = "block"; }
JSP donde genero el gráfico:
Código:
el metodo ajax lo mando a llamar con un metodo onchange de un select...<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <% String anio=request.getParameter("aniodep"); String anioreg=request.getParameter("anioreg"); String []TotalesEsp=new com.ms.sqlserver.Supervision(request).obtTotSupEspDepend(<%=anio%>, <%=anioreg%>); %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <script type="text/javascript" src="graficos/raphael.js"></script> <script src="graficos/jquery-1.8.2.min.js" type="text/javascript"></script> <script src="graficos/g.raphael.js" type="text/javascript"></script> <script type="text/javascript" src="graficos/g.bar.js"></script> <script type="text/javascript" src="graficos/morris.js"></script> </head> <body > <div id="bar-example" style="heigh:200px; width:500px;"></div> <script> Morris.Bar({ element: 'bar-example', data: [ { y: 'Opcion 1', a:<%=TotalesEsp[0]%> }, { y: 'Opcion 2', a:<%=TotalesEsp[1]%> }, { y: 'Opcion 3', a:<%=TotalesEsp[2]%> }, { y: 'Opcion 4', a:<%=TotalesEsp[3]%> }, { y: 'Opcion 5',a:<%=TotalesEsp[4]%> }, { y: 'Opcion 6', a:<%=TotalesEsp[5]%> } ], xkey: 'y', ykeys: ['a'], labels: ['2013'], barColors:['#0091ff','#5f7dff'] }); </script> </body> </html>
ya probé de forma independiente el código de la gráfica y anda bien... no se que pueda ser...