Ho rifatto tenendo conto di ajax e passando al server le date ma non funziona, mi volete esaminare un 'attimo la codifica per capire dove ho sbagliato ?
Nel mio file php ho sviluppato il codice con ajax nel seguente file .php che chiameremo provaajax.php :
Codice PHP:
<!DOCTYPE HTML>
<html>
<tr>
<form name="testform4">
<label for="nome">Scegli le date e visualizza grafico:</label>
<label for="nome">Data Iniziale:</label>
<input class="text_area" type="text" name="date_da1" id="date_da1" size="12" cols="35" rows="3" value="<?php echo $this->eventi->date_da1;?>" />
<script language="JavaScript">
new tcal ({
// form name
'formname': 'testform4',
// input name
'controlname': 'date_da1'
});
</script>
<label for="nome">Data Finale:</label>
<input class="text_area" type="text" name="date_a1" id="date_a1" size="12" cols="35" rows="3" value="<?php echo $this->eventi->date_a1;?>" />
<script language="JavaScript">
new tcal ({
// form name
'formname': 'testform4',
// input name
'controlname': 'date_a1'
});
</script>
<td style="border:#FFF; width:43%">
<a style="cursor:pointer" onclick='ViewGraphBar()'>[img]images/graphic.jpg[/img]</a>
</td>
</form>
</tr>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Highcharts Example</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
function ViewGraphBar() {
var chart;
var data_da1 = "";
var data_a1 = "";
if(document.getElementById('date_da1').value != "")
{
data_da1 = document.getElementById('date_da1').value;
}
if(document.getElementById('date_a1').value != "")
{
data_a1 = document.getElementById('date_a1').value;
}
$.ajax({
url: 'graficoGiorn.php',
type: "POST",
data: "data_da1="+data_da1+"&data_a1="+data_a1+"&id="+ <? echo $id; ?>,
success: function(data) {
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'column',
margin: [ 50, 50, 100, 80]
},
title: {
text: 'AAAAAA'
},
xAxis: {
categories: [
<?php
$query = "SELECT DATE_FORMAT(data_store, '%d-%m-%Y') as data_store, valore_tot FROM mytab WHERE id_impianto = $id" ;
$risultato = $this->db->loadQuery($query);
$res = $risultato;
$i = 0;
while ($fetch = mysql_fetch_array($res)) {
$categoria = $fetch['data_store'];
$ValNum[$i] = $fetch['valore_tot'];
$i++;
// echo "'$categoria', ";
echo "'$Da', ";
}
?>
],
labels: {
rotation: -45,
align: 'right',
style: {
fontSize: '13px',
fontFamily: 'Verdana, sans-serif'
}
}
},
yAxis: {
min: 0,
title: {
text: 'aaaaaaaaaaaaaaaa'
}
},
legend: {
enabled: false
},
tooltip: {
formatter: function() {
return '[b]'+ this.x +'[/b]
'+
'Praaaaaa '+ Highcharts.numberFormat(this.y, 1) +
' app';
}
},
series: [{
name: 'kwh',
data: [
<?php
$a = 0;
$lung = count($ValNum);
while ($a < $lung) {
$Valore = (double)$ValNum[$a];
echo "$Valore, ";
$a++;
}
?>
],
dataLabels: {
enabled: true,
rotation: -90,
color: '#FFFFFF',
align: 'right',
x: 4,
y: 10,
style: {
fontSize: '13px',
fontFamily: 'Verdana, sans-serif'
}
}
}]
});
});
}
});
</script>
</head>
<body>
<script src="js/highcharts.js"></script>
<script src="js/modules/exporting.js"></script>
<div id="container" style="overflow: auto; height: Auto; margin: 0 auto"></div>
</body>
</html>
poi nel file graficoGiorn.php ho inserito :
Codice PHP:
<?
$id = $_POST["id"];
$data_da1 = $_POST["data_da1"];
$data_a1 = $_POST["data_a1"];
$dataOdierna = getdate();
$dataOggi = $dataOdierna['year']."-".$dataOdierna['mon']."-".$dataOdierna['mday'];
$oraInterv = $dataOdierna['hours'];
$oraInterv = $oraInterv - 1;
$stringa = "";
echo $data_da;
echo $data_a;
?>
Mi serve solo per passare le date in effetti al server e poi mi serviranno per metterle nella select; ma nonostante non le utilizzo ora il grafico impostato in questo modo e che avrebbe dovuto funzionare non funziona, come mai ? Mi analizzate per favore dove sbaglio ?
(scusate ma le tecniche ajax le sto utilizzando solo ora)
Grazie