Php Google图表显示表单外输入的可视化

Php Google图表显示表单外输入的可视化,php,mysql,date,checkbox,google-visualization,Php,Mysql,Date,Checkbox,Google Visualization,我实际上正在进行一个项目,以可视化测量值。知道吗,我有能力可视化数据库中的所有值,但更进一步,可以使用复选框,以便更容易地选择用户希望看到的内容。我一直在思考如何让用户能够首先使用复选框,一个解决方案是为每个复选框制作多个if,如果选中一个或多个as,则将它们放在一起 我需要帮助的事情: 让用户有机会从复选框中选择他们想要看到的内容 对过期的数据进行排序 这就是目标: 到目前为止,我来过: 代码: load(“可视化”、“1”、{packages:[“corechart”]}); se

我实际上正在进行一个项目,以可视化测量值。知道吗,我有能力可视化数据库中的所有值,但更进一步,可以使用复选框,以便更容易地选择用户希望看到的内容。我一直在思考如何让用户能够首先使用复选框,一个解决方案是为每个复选框制作多个if,如果选中一个或多个as,则将它们放在一起

我需要帮助的事情:

  • 让用户有机会从复选框中选择他们想要看到的内容
  • 对过期的数据进行排序
这就是目标:

到目前为止,我来过:

代码:


load(“可视化”、“1”、{packages:[“corechart”]});
setOnLoadCallback(drawChart);
函数绘图图(){
var data=new google.visualization.DataTable();
变量选项={
/*宽度:900,高度:900*/
标题:“可视化”,
/*curveType:'函数'*/
图例:{位置:'bottom'},
点数:10,
vAxis:{title:“Values”,titleTextStyle:{italic:false},
哈克斯:{title:“Time”,titleTextStyle:{italic:false},
};
var chart=new google.visualization.LineChart(document.getElementById('chart_div'));
图表绘制(数据、选项);
}
Phpmyadmin:


您始终可以使用来清理
数据表。您既没有小提琴,也没有给出JSON的示例,因此这里有一个包含其他值的示例,但技术非常简单

假设有3行数据:
Cats
blanket1
blanket2
。然后为每个数据列设置复选框:


猫
毛毯2
...
drawChart
方法中,检查每个复选框的选中状态,如果不符合以下条件,则删除相应的数据列:

//记住相反的顺序!
如果(!blanket2.选中)数据删除列(3);
如果(!blanket1.checked)data.removeColumn(2)
...
相反的顺序是nessecary,您必须先检查最后一列,然后检查最后第二列,依此类推

最后,为每个复选框指定一个单击处理程序,每次单击复选框时重新绘制图表:

cats.onchange=绘图图;
blanket1.onchange=图纸;
...
请参见演示->

当然-在你的情况下,我不会每次都毁掉原来的
。将原始的
保存在全局变量中,然后用该变量的本地副本创建图表

要按日期(时间)排序数据,必须重新加载页面或使用AJAX获取新的
。这不应与列的显示/隐藏一起进行(无需重新加载您准备好的数据)。不可能给出一个具体的例子,因为您不知道如何在(假定的)表单中输入日期,您打算如何处理PHP,甚至不知道表中的
time
格式。是弦吗?我们不知道。但是假设一个表单上有两个
,并且
Date
类型为
Date

<input type="text" name="from">
<input type="text" name="to">

谢谢你的帮助。我正在将日期另存为:YYYY-MM-DD,作为phpmyadmin中的属性,用于日期。我想问的另一个问题是,在X轴中,我只显示时间,但当你长时间测量时,会显示很多周。最好让用户也有机会在X axse中查看日期。你认为怎样才能最好地解决这个问题?我举了一个例子,我认为这将是最好的方法:另一种方法是用每个时间数字进行约会。我认为最好的方法是将每天的测量值与其他日期的测量值区分开来。提出了一个新问题:小心使用
removeColumn
,因为如果使用它,实际上会丢失数据。最好是使用DataView并指定要查看的列。嘿@asgallant,请参阅我的评论->“在您的情况下,我不会每次都破坏原始列”,但您是对的。当然-也许我应该更清楚这一点,并给出了一个如何保存原始可重用JSON源的示例。我更新了您的示例以使用视图:。我没有注意到您在复选框的事件处理程序中调用了
drawChart
,因此在本例中,我的原始注释中的危险被夸大了。不过,最好从资源和执行的角度使用该视图。
<input type="text" name="from">
<input type="text" name="to">
$SQL = 'SELECT * FROM googlechart '.
       'WHERE `Date` BETWEEN "'.$_GET['from'].'" AND "'.$_GET['to'].'"';
$sth = mysql_query($SQL);