Al probar el gráfico en una sola página me funciona perfectamente y por cualquier método (DataURL o DataStr que es como prefiero trabajarlo).
Código de la página inicial
Código HTML:
<?php include_once('funciones.php'); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Documento sin título</title> <script language="javascript" src="fusion_chart/Charts/FusionCharts.js"> </script> <script language="javascript" src="interfax_ajax.js"> </script> </head> <body> <img src="http://www.forosdelweb.com/f18/Lenel/vista/img/ok.png" width="50px" height="50px" onclick="graficar('grafico',1,8807893)" /> <br /> <div id="grafico"></div> </body> </html>
Código:
Código de la página ajax.php (la cual recibe los datos del código anterior)function graficar(marca,numero,valor){//vv=1 ajax=nuevoAjax(); ajax.open("GET", "ajax.php?vv="+numero+"&ced="+valor,true); ajax.onreadystatechange=function(){// if(ajax.readyState==4){ document.getElementById(marca).innerHTML=ajax.responseText; } } ajax.send(null); }
Código PHP:
<?php
include_once('funciones.php');
include('fusion_chart/Code/PHP/Includes/FusionCharts.php');
?>
<?php
$vv=$_GET['vv'];//recibimos el identificador de textos a devolver de este archivo
if($vv==1){
$cedula=$_GET['ced'];
$cone=Conectarse();
$vec=array();
$mes="06";
$year="2011";
$dia="01";
$ini=$year.$mes.$dia;
$fin=$year.$mes.dias_fecha($mes);
$final=$year.$mes.dias_fecha($mes);
$sql="SELECT
hora,
fecha
FROM
data_acceso
WHERE
FLT_CEDULA = '$cedula' AND
EVENTIME BETWEEN '".$ini." 00:00:00.000' AND '".$fin." 23:59:59.000'
ORDER BY EVENTIME ASC";
$result=mssql_query($sql,$cone);
$first=mssql_fetch_array($result);
$band=0;
$cont=1;
$day=strtotime($first['fecha']);
$hour=$first['hora'];
$strxml.="<chart caption='Horas Trabajadas por día' xAxisName='Dia' yAxisName='Horas' showValues='0' formatNumberScale='0' decimalSeparator='.' yAxisMinValue='0' yAxisMaxValue='14' forceYAxisValueDecimals='2' yAxisValueDecimals='2' decimals='2' showBorder='1'>\n";
$v=array();//vector que va a guardar la data de salida
$i=0;
do{
$cont++;
if($band==0){//para el primer registro
$band=1;
$row=mssql_fetch_array($result);
$h1=$hour;
$strxml=$strxml."<set label='".fecha_estandar($first['fecha'])."' value='";
}
if($day!=obtener_dia($row['fecha'])){//si hubo cambio de dia
$strxml=$strxml.horas_trabajadas_fraccion(horas_trabajadas($h1,$hour))."' />\n";
$i++;
$strxml=$strxml."<set label='".fecha_estandar($row['fecha'])."' value='";
$h1=$row['hora'];
}
if($cont==mssql_num_rows($result)) {//si es el ultimo registro
$strxml=$strxml.horas_trabajadas_fraccion(horas_trabajadas($h1,$row['hora']))."' />\n";
}
$day=obtener_dia($row['fecha']);
$hour=$row['hora'];
}while($row=mssql_fetch_array($result));
$strxml = $strxml."</chart>";
echo renderChart("fusion_chart/Charts/Column3D.swf", "", $strxml, "Primero", 600, 600, false, true);
?>
<?php
}
?>
De antemano gracias.