2015-10-28 26 views
-1

這是我的控制器圖表中使用Yii highcharts

public function actionStudentChart() 
     { 
      $stu_track_id = Yii::app()->user->getState('stu_track_id'); 
      $model = MarkDetails::model()->findAllByAttributes(array('mark_stud_track_id' => $stu_track_id)); 
      $stu_inst_id = Yii::app()->user->getState('stu_inst_id'); 
      $stu_class = Yii::app()->user->getState('stu_class'); 
      if(SchoolSubjectDetails::model()->findByAttributes(array('school_subj_inst_id' => $stu_inst_id , 'school_subj_class' => $stu_class))) 
      { 
       $schoolsubmodel = SchoolSubjectDetails::model()->findByAttributes(array('school_subj_inst_id' => $stu_inst_id , 'school_subj_class' => $stu_class)); 
      } 
      if(!empty($schoolsubmodel->school_subject) && is_array(explode(',',$schoolsubmodel->school_subject))) 
          $schoolsubmodel->school_subject=explode(',',$schoolsubmodel->school_subject); 
      $submodel = array(); 
      $sub_label = array(); 
      $sub_name = array(); 
      $marks[0] = array(90,80,80); 
      $marks[1] = array(90,80,80); 
      $marks[2] = array(90,80,80); 
      $marks[3] = array(90,80,80); 
      $marks[4] = array(90,80,80); 
      for($i=0 ; $i<count($schoolsubmodel->school_subject) ; $i++) 
      { 
       $submodel[$i] = SubjectDetails::model()->findByAttributes(array('subject_id' =>$schoolsubmodel->school_subject[$i])); 
       $sub_label[$i] = $submodel[$i]['subject_label']; 
       $sub_name[$i] = $submodel[$i]['subject_name']; 
      } 
      foreach($model as $val) 
      { 
       for($i=0;$i<count($sub_label);$i++) 
       { 
        $mrk[$i][]=$val[$sub_label[$i]]; 
       } 
      } 
      $this->render('studentchart',array(
       'model'=>$model,'sub_label'=>$sub_label,'sub_name'=>$sub_name,'marks'=>$marks,'mrk'=>$mrk, 
      )); 
     } 

這是我的看法

if(!empty($model)) 
     { 
      for($i=0 ; $i<count($model) ; $i++) 
      { 
       $exam_type[] = $this->_exam_type[$model[$i]->mark_exam_type]; 
      } 
      for($i=0 ; $i<count($sub_label) ; $i++) 
      { 
       $chartData1[] = array("name"=>$sub_name[$i] , "data"=>$marks[$i]); 
       $chartData2[] = array("name"=>$sub_name[$i] , "data"=>$mrk[$i]); 
      } 
      $this->Widget('ext.highcharts.HighchartsWidget', array(
       'options' => array(
        'chart' => array('type' => 'bar'), 
        'title' => array('text' => false), 
        'xAxis' => array(
        'categories' => $exam_type 
       ), 
        'yAxis' => array(
        'title' => array('text' => 'Marks Obtain') 
       ), 
        'series' => $chartData1 
       ) 
      )); 
      $this->Widget('ext.highcharts.HighchartsWidget', array(
       'options' => array(
        'chart' => array('type' => 'bar'), 
        'title' => array('text' => false), 
        'xAxis' => array(
        'categories' => $exam_type 
       ), 
        'yAxis' => array(
        'title' => array('text' => 'Marks Obtain') 
       ), 
        'series' => $chartData2 
       ) 
      )); 
     } 

這裏我想從我的markdetails表顯示圖表我已經採取了數據和主題塔標誌在名稱中,並將名稱和數據數組傳遞給圖表窗口小部件的系列現在問題是如果我給靜態顯示圖表中的值,如果我從數據庫圖表中得到的值未被繪製。

在這裏,我有打印和檢查都chartData1和chartData2都具有相同的值,但是當我通過這個值來我的小部件chartData1已ploted其中作爲chartData2「數據」數組不過去了這麼圖形不繪製

Array 
(
    [0] => Array 
     (
      [name] => English 
      [data] => Array 
       (
        [0] => 90 
        [1] => 80 
        [2] => 80 
       ) 

     ) 

    [1] => Array 
     (
      [name] => Language1 
      [data] => Array 
       (
        [0] => 90 
        [1] => 80 
        [2] => 80 
       ) 

     ) 

    [2] => Array 
     (
      [name] => Science 
      [data] => Array 
       (
        [0] => 90 
        [1] => 80 
        [2] => 80 
       ) 

     ) 

    [3] => Array 
     (
      [name] => Social Science 
      [data] => Array 
       (
        [0] => 90 
        [1] => 80 
        [2] => 80 
       ) 

     ) 

    [4] => Array 
     (
      [name] => Mathematics 
      [data] => Array 
       (
        [0] => 90 
        [1] => 80 
        [2] => 80 
       ) 

     ) 

) 
Array 
(
    [0] => Array 
     (
      [name] => English 
      [data] => Array 
       (
        [0] => 90 
        [1] => 80 
        [2] => 80 
       ) 

     ) 

    [1] => Array 
     (
      [name] => Language1 
      [data] => Array 
       (
        [0] => 90 
        [1] => 80 
        [2] => 80 
       ) 

     ) 

    [2] => Array 
     (
      [name] => Science 
      [data] => Array 
       (
        [0] => 90 
        [1] => 80 
        [2] => 80 
       ) 

     ) 

    [3] => Array 
     (
      [name] => Social Science 
      [data] => Array 
       (
        [0] => 90 
        [1] => 80 
        [2] => 80 
       ) 

     ) 

    [4] => Array 
     (
      [name] => Mathematics 
      [data] => Array 
       (
        [0] => 90 
        [1] => 80 
        [2] => 80 
       ) 

     ) 

) 
+0

[顯示圖表的可能的複製在yii使用(http://stackoverflow.com/questions/33386135/display-chart-in-yii-using-highcharts) – davcs86

+0

這也是我的問題,只有我只有我轉換爲這個@ davcs86 – Kameshwaran

回答

0

在控制人變更的foreach爲

foreach($model as $val) 
    { 
     for($i=0;$i<count($sub_label);$i++) 
     { 
      $mrk[$i][]=intval($val[$sub_label[$i]]); 
     } 
    } 

這是工作,終於得到了....................