Php 用户指定要在jqplot中绘制的y轴数量
拜托,我一直在尝试,但似乎很难。我试图使y轴的数量取决于用户选择。有3个部分供用户选择,即: 绘图的时间范围 要打印的ID,将从数据库中获取 要在数据库中搜索的字段 如果用户选择2个ID和2个字段,那么我应该在绘图上有4条不同的线。这意味着: 行数=所选ID数*所选字段数 有了这些,我知道我将得到图例中标签的相同编号以及要显示的y轴编号 我举的例子应该是这样的: 字段_1-ID_1 字段_2-ID_1 字段_1-ID_2 字段_2-ID_2 用于生成图例标签和y轴,但这完全取决于用户选择Php 用户指定要在jqplot中绘制的y轴数量,php,javascript,ajax,jqplot,Php,Javascript,Ajax,Jqplot,拜托,我一直在尝试,但似乎很难。我试图使y轴的数量取决于用户选择。有3个部分供用户选择,即: 绘图的时间范围 要打印的ID,将从数据库中获取 要在数据库中搜索的字段 如果用户选择2个ID和2个字段,那么我应该在绘图上有4条不同的线。这意味着: 行数=所选ID数*所选字段数 有了这些,我知道我将得到图例中标签的相同编号以及要显示的y轴编号 我举的例子应该是这样的: 字段_1-ID_1 字段_2-ID_1 字段_1-ID_2 字段_2-ID_2 用于生成图例标签和y轴,但这完全取决于用户选择 感谢您
感谢您的关注。我终于找到了解决这个问题的方法,从php端生成jqplot中series属性的元素,其格式为预期的格式,即
series:[{label:Field_1-ID_1,yaxis:'yaxis'},{label:Field_1-ID_2,yaxis:'y2axis'},{label:Field_2-ID_1,yaxis:'y3axis'},{label:Field_2-ID_2,yaxis:'y4axis'}]
如果有人对如何操作感兴趣,请检查以下代码:
$con = mysql_connect($hostname, $username, $password);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db($database, $con);
$unit = mysql_real_escape_string($_GET["units"]);//ID selected by user, e.g.(ID_1,ID_2)
$stat = mysql_real_escape_string($_GET["start"]);//start time
$stop = mysql_real_escape_string($_GET["stop"]);//stop time
$field1 = mysql_real_escape_string($_GET["fieldlist"]);//Field selected by user, e.g.(Field_1,Field_2)
$first=true;
echo "Label=";
echo "[";
$field = explode(",", $field1);
$count=count($field);
$i=0;$j=1;
while($i<$count)
{
$sq="SELECT su_id FROM Station_stat
WHERE su_id in ($unit) GROUP BY su_id";
$res = mysql_query($sq);
while($row = mysql_fetch_array($res)){
if ($first != true )
{
echo ",";
echo "{label:\"$field[$i] ".$row['su_id']."\",yaxis:\"y".++$j."axis\"}";
}
else
echo "{label:\"$field[$i] ".$row['su_id']."\",yaxis:\"yaxis\"}";
$first = false;
}
++$i;
}
echo "];";
然后在jqplot函数中,我将序列设置为标签:
series:Label
那么你的问题是什么?@马克谢谢,我的问题是,是否有可能将显示的y轴的数量设为dynamici.e。取决于用户对ID和字段的选择,如果用户选择1个ID和1个字段,则我只需要1个y轴,如果选择1个ID和2个字段,则我需要2个y轴。非常感谢。
series:Label