javascript - How to make multiple drilldown highcharts? -
i have succeeded in making 1 drilled highcharts. btw, highcharts' data taken database, not manually typed. want make multiple drill this: http://jsfiddle.net/vf3yt/1108/
here table :
faculty
department
major
i have controller , view this:
controller
public function actionindex() { //data usia fakultas $categoryarray = []; $faculty = (new \yii\db\query()) ->select(['faculty']) ->from('faculty') ->limit(10) ->column(); array_push($categoryarray, array('id'=>0, 'categories'=>$faculty)); $faculty2 = array_map('floatval', $faculty); $lessfaculty = (new \yii\db\query()) ->select(['lessthan25']) ->from('faculty') ->limit(10) ->column(); $fakultas = $faculty; $lessfaculty = array_map('floatval', $lessfaculty); foreach ($lessfaculty $key => $lessfaculty_value) { $lessfaculty[$key] = [ 'name' => 'fakultas', 'y' => $lessfaculty_value, 'drilldown' => 'department'.$fakultas[$key].'less' ]; }; $betweenfaculty = (new \yii\db\query()) ->select(['btween25to29']) ->from('faculty') ->limit(10) ->column(); $betweenfaculty = array_map('floatval', $betweenfaculty); foreach ($betweenfaculty $key => $betweenfaculty_value) { $betweenfaculty[$key] = [ 'name' => 'fakultas', 'y' => $betweenfaculty_value, 'drilldown' => 'department'.$fakultas[$key].'betw' ]; }; $data['faculty'] = json_encode($faculty); $data['lessfaculty'] = json_encode($lessfaculty); $data['betweenfaculty'] = json_encode($betweenfaculty); // next $i = 1; $drilldownarray = []; foreach($faculty2 $keyf=>$faculty_value){ $department = (new \yii\db\query()) ->select(['department']) ->from('department') ->where('department "'.$fakultas[$keyf].'%"') ->limit(10) ->column(); array_push($categoryarray, array('id'=>$i, 'categories'=>$department)); $department2 = array_map('floatval', $department); $lessdepartment = (new \yii\db\query()) ->select(['lessthan25']) ->from('department') ->where('department "'.$fakultas[$keyf].'%"') ->limit(10) ->column(); $departemen = $department; $lessdepartment = array_map('floatval', $lessdepartment); foreach ($lessdepartment $key => $lessdepartment_value) { $lessdepartment[$key] = [ 'name' => $fakultas[$keyf].($key+1), 'y' => $lessdepartment_value, 'drilldown' => 'major'.$departemen[$key].'less' ]; }; array_push($drilldownarray, array('name'=>'lessthan25', 'xaxis'=> $keyf+1, 'id'=>'department'.$fakultas[$keyf].'less', 'data'=>$lessdepartment)); $betweendepartment = (new \yii\db\query()) ->select(['btween25to29']) ->from('department') ->where('department "'.$fakultas[$keyf].'%"') ->limit(10) ->column(); $betweendepartment = array_map('floatval', $betweendepartment); foreach ($betweendepartment $key => $betweendepartment_value) { $betweendepartment[$key] = [ 'name' => $fakultas[$keyf].($key+1), 'y' => $betweendepartment_value, 'drilldown' => 'major'.$departemen[$key].'betw', ]; }; array_push($drilldownarray, array('name'=>'btween25to29', 'xaxis'=> $keyf+1, 'id'=>'department'.$fakultas[$keyf].'betw', 'data'=>$betweendepartment)); //next foreach($department2 $keyd=>$department_value){ $major = (new \yii\db\query()) ->select(['major']) ->from('major') ->where('major "'.$departemen[$keyd].'%"') ->limit(10) ->column(); array_push($categoryarray, array('id'=>$i, 'categories'=>$major)); $lessmajor = (new \yii\db\query()) ->select(['lessthan25']) ->from('major') ->where('major "'.$departemen[$keyd].'%"') ->limit(10) ->column(); $lessmajor = array_map('floatval', $lessmajor); foreach ($lessmajor $key => $lessmajor_value) { $lessdmajor[$key] = [ 'name' => $departemen[$keyd].($key+1), 'y' => $lessmajor_value ]; }; array_push($drilldownarray, array('name'=>'lessthan25', 'xaxis'=> $keyd+1, 'id'=>'major'.$departemen[$key].'less', 'data'=>$lessdepartment)); $betweenmajor = (new \yii\db\query()) ->select(['btween25to29']) ->from('major') ->where('major "'.$departemen[$keyd].'%"') ->limit(10) ->column(); $betweenmajor = array_map('floatval', $betweenmajor); foreach ($betweenmajor $key => $betweenmajor_value) { $betweenmajor[$key] = [ 'name' => $departemen[$keyd].($key+1), 'y' => $betweenmajor_value ]; }; array_push($drilldownarray, array('name'=>'btween25to29', 'xaxis'=> $keyd+1, 'id'=>'major'.$departemen[$key].'betw', 'data'=>$betweendepartment)); } $i++; } $data['categoryarray'] = json_encode($categoryarray); $data['drilldownarray'] = json_encode($drilldownarray); $data['major'] = json_encode($major); $data['lessmajor'] = json_encode($lessmajor); $data['betweenmajor'] = json_encode($betweenmajor); return $this->render('index',$data); }
view
$(function () { $('#containers').highcharts({ chart: { type: 'column' }, title: { text: 'basic drilldown' }, xaxis: $categoryarray, legend: { enabled: false }, plotoptions: { series: { borderwidth: 0, datalabels: { enabled: true, } } }, series: [ { name: 'lessthan25', data: $lessfaculty, }, { name: 'btween25to29', data: $betweenfaculty, }], drilldown: { series: $drilldownarray } }) }); ")?>
when tried make multiple drilldwon, result this:
here link of full code anyway
controller : https://pastebin.com/rgmgp4ci
view : https://pastebin.com/hcqlzv5b
what may fix that?
thanks in advance
Comments
Post a Comment