Jejeje, salgo de un problema y entro en otro
Antes mi problema era generar graficos con Jpgraph, ahora lo hace... pero donde intento llamarlo desde ajax, toma la primera vez que lo llamo, y las proximas veces me devuelve el primer grafico...
Les dejo el codigo a ver si me pueden dar una mano plz...
index.php
Código :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin título</title>
<link href="./estilos/style.css" rel="stylesheet" type="text/css">
<!--[if lte IE 6]><link href="./estilos/style_ie.css" rel="stylesheet" type="text/css"><![endif]-->
<script language="JavaScript" type="text/javascript" src="./js/codigo.js"></script>
<style type="text/css">
<!--
.clear{clear: both;}
-->
</style>
</head>
<body>
<div class="wrapper">
<!-- NAV -->
<?php
include 'nav.php';
?>
<!-- /NAV -->
</div>
<!-- CUERPO -->
<div id="container">
<div id="barra">
</div>
<div class="clear">
<div id="contenido"></div>
</div>
<!-- /CUERPO -->
<script language="javascript">
llamarasincrono('inicio.php?level=<?php echo $_GET['userlevel']; ?>','contenido');
</script>
</body>
</html>
stats_cargo.php
Código :
<?php
session_start();
include ("../../functions/url.php");
include ("../../functions/database.php");
for($a = 1; $a < 6; $a++){
$ask = "SELECT COUNT(cargolab) FROM usuarios WHERE cargolab = ".$a."";
$query = mysql_query($ask,$conn);
$zona[$a] = mysql_fetch_array($query);
mysql_free_result($query);
}
$valores = array();
$textos = array();
$ask = "SELECT COUNT(cargolab) FROM usuarios";
$query = mysql_query($ask, $conn);
$total = mysql_fetch_array($query);
for($b = 1; $b < 6; $b++){
$aux = $zona[$b][0] / $total[0] * 100;
array_push($valores, $aux);
switch($b){
case 1:
array_push($textos,'Concurrente');
break;
case 2:
array_push($textos,'Residente');
break;
case 3:
array_push($textos,'Staff');
break;
case 4:
array_push($textos,'Jefe de servicio');
break;
case 5:
array_push($textos,'Docente');
break;
}
}
$titulo = 'Estadisticas - Participantes - Cargo';
//ENVIO LOS DATOS CORRESPONDIENTES AL GRAFICO
$_SESSION['valores'] = $valores;
$_SESSION['textos'] = $textos;
$_SESSION['titulo'] = $titulo;
?>
cargo
<img src="./stats/grafico_tarta.php">
grafico_tarta.php
Código :
<?php
session_start();
include ("../graphs/jpgraph.php");
include ("../graphs/jpgraph_pie.php");
include ("../graphs/jpgraph_pie3d.php");
$data = $_SESSION['valores'];
$graph = new PieGraph(450,200,"auto");
$graph->img->SetAntiAliasing();
$graph->SetMarginColor('gray');
//$graph->SetShadow();
// Setup margin and titles
$graph->title->Set($_SESSION['titulo']);
$p1 = new PiePlot3D($data);
$p1->SetSize(0.35);
$p1->SetCenter(0.5);
// Setup slice labels and move them into the plot
$p1->value->SetFont(FF_FONT1,FS_BOLD);
$p1->value->SetColor("black");
$p1->SetLabelPos(0.2);
$nombres=$_SESSION['textos'];
$p1->SetLegends($nombres);
// Explode all slices
$p1->ExplodeAll();
$graph->Add($p1);
$graph->Stroke();
?>
ajax.js
Código :
// Documento JavaScript
// Esta función cargará las paginas
function llamarasincrono (url, id_contenedor)
{
var pagina_requerida = false;
if (window.XMLHttpRequest)
{
// Si es Mozilla, Safari etc
pagina_requerida = new XMLHttpRequest ();
} else if (window.ActiveXObject)
{
// pero si es IE
try
{
pagina_requerida = new ActiveXObject ("Msxml2.XMLHTTP");
}
catch (e)
{
// en caso que sea una versión antigua
try
{
pagina_requerida = new ActiveXObject ("Microsoft.XMLHTTP");
}
catch (e)
{
}
}
}
else
return false;
pagina_requerida.onreadystatechange = function ()
{
// función de respuesta
cargarpagina (pagina_requerida, id_contenedor);
}
pagina_requerida.open ('GET', url, true); // asignamos los métodos open y send
pagina_requerida.send (null);
}
// todo es correcto y ha llegado el momento de poner la información requerida
// en su sitio en la pagina xhtml
function cargarpagina (pagina_requerida, id_contenedor)
{
if (pagina_requerida.readyState == 4 && (pagina_requerida.status == 200 || window.location.href.indexOf ("http") == - 1))
document.getElementById (id_contenedor).innerHTML = pagina_requerida.responseText;
}
Las páginas las carga (stats_cargo.php, stats_laboral.php, etc. Todas tienen la misma logica), el problema es que carga las paginas pero no cambia el grafico correspondiendo a los valores que les envia cada script...
¿No sabrán que pueda ser lo que estoy errando?
Desde ya muchas gracias!!
Pablo
[/code]
