Buenas explico brevemente mi caso. Quiero que al dar click sobre X elemento (imagen,texto.... en este csao imagen) se cargue dinámicamente en la parte inferior un gráfico.
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 de la página Javascript con el objeto Ajax (sólo cóloco la función que me hace la "conexión")
Código:
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 de la página ajax.php (la cual recibe los datos del código anterior)
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
}
?>
Sólo me imprime la palabra "Chart" en la página inicial.
De antemano gracias.