2013-01-22 23 views
1

請我一直在嘗試這個,但似乎很難。我正在嘗試使y軸的數量取決於用戶選擇。有3個部分供用戶選擇,分別是:用戶指定y軸的數量繪製jqplot

  1. 時間範圍,情節
  2. ID繪製,將從數據庫
  3. 場採取在數據庫中搜索

如果用戶選擇2個ID和2個字段,那麼我應該在圖上有4個不同的行。這意味着:

行數=選擇的ID的數目*場的數量來選擇

隨着我知道我會得到相同的編號爲圖例中的標籤,並且還爲y軸與數被顯示。

對於我給了,應該是這樣的例子:

  • Field_1-ID_1
  • Field_2-ID_1
  • Field_1-ID_2
  • Field_2-ID_2

爲要生成的圖例標籤和y軸,但這一切都取決於用戶的選擇。

感謝您的關注。

+0

那麼你的問題是什麼? – Mark

+0

@Mark謝謝,我的問題是要知道是否有可能使y軸的數字顯示爲動態的(即取決於用戶選擇ID和字段,如果用戶選擇1 ID和1字段,則I只需要1個y軸,如果1個ID和2個字段,那麼我需要2個y軸)。謝謝。 – arewa

回答

0

我終於找到了一個方式,通過從PHP端生成解決這個問題,該系列屬性的元素在jqplot在其預期的格式即

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 "];"; 

在PHP的輸出是這樣的:

Label=[{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'}]; 

然後在jqplot函數中,我將系列設置爲Label:

series:Label