这是我的控制器
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绘制了图表,其中mapData2“data”数组未通过,因此图表未绘制
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 :(得分:0)
在控制器更改foreach中
foreach($model as $val)
{
for($i=0;$i<count($sub_label);$i++)
{
$mrk[$i][]=intval($val[$sub_label[$i]]);
}
}
这是有效的,终于得到....................