javascript - Morris Donut Chart dynamic json data -


i trying build morris donut chart dynamic data can't seem understand how pass dynamic data labels.

sqli db method query:

    get_requests_count_per_ouc_per_month($month){         $connection = get_db(); $query = "select u.ouc ouc, count(r.engineer_uin) no_of_requests              users u              inner join request r on r.engineer_uin = u.uin             , extract(month r.date_received) =".$month."              group u.ouc             order no_of_requests";       return $connection->query($query); } 

the query returns following results:

ouc     |  no_of_requests  bvg15   |  1 bvg16   |  2 bvg13   |  4 bvg1c3  |  5 

i wish pass ouc labels , no_of_requests ykeys:

so donut chart should this:

donut_chart_pct = morris.donut({       element: 'donut_chart_pct',       data: [         {label: "bvg15", value: 1},         {label: "bvg16", value: 2},         {label: "bvg13", value: 4},         {label: "bvg1c3", value: 5}        ],      }); 

however, don't know how many ouc returned label has dynamic i.e. shrinking/expanding depending upon number of unique ouc's returned respective counts

this have tried:

    function prepare_donut_chart_requests_per_ouc_org_data(){     //$returnarray=array();             $month = date('m', strtotime(date('y-m-01')));             $requests = get_requests_count_per_ouc_per_month($month);              while($row = $requests->fetch_assoc()) {                 $returnarray[]=array('ouc'=>$row['ouc'],'total'=>$row['no_of_requests']);             }      return $returnarray;  } $returnarray = prepare_donut_chart_requests_per_ouc_org_data();     http_response_code(200);     echo json_encode($returnarray); 

the following array returned in json format:

[{"ouc":"bvg15","total":"1"},{"ouc":"bvg16","total":"2"},{"ouc":"bvg13","total":"4"},{"ouc":"bvg1c3","total":"5"}] 

now don't know how setup donut chart label corresponding values don't know how pass dynamically?

my javascript looks this:

function add_donut_chart_requests_per_ouc_org_data(){           $.ajax({         type:"get",         url:"graph-calls.php",         datatype:"json",         contenttype:"application/json",         data:"chart=donut_chart_requests_per_ouc_org",          success:function(response){          reload_chart('donut_chart_requests_per_ouc_org',response);         console.log(json.stringify(response));         },           error: function(response){              alert('there error!' + json.stringify(response));           }       });        return false; }  function reload_chart(chart,response){      if(chart=='donut_chart_requests_per_ouc_org'){      if(response!=null){       var ouc= response.ouc;       var total= response.total;        var donut_chart_data = [          {label: ouc, value: total}          ];          donut_chart_requests_per_ouc_org.setdata(donut_chart_data);         donut_chart_requests_per_ouc_org.redraw();      }      } } 

the problem can't seem ouc , total values. if print says undefined. doing wrong? :/any code example highly appreciated

update

made following changes javascript reload method , working now:

if(chart=='donut_chart_requests_per_ouc_org'){        donut_chart_data=[];        for(var i=0; i<response.length;i++){               var ouc= response[i].ouc;               var total= response[i].total;                donut_chart_data[i]={label:ouc,                           value:total                      };            }                 console.log(donut_chart_data);          if(donut_chart_data.length){          donut_chart_requests_per_ouc_org.setdata(donut_chart_data);         donut_chart_requests_per_ouc_org.redraw();         }    } 


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -