ayaz khan
ayaz khan

Reputation: 141

How can pass php array chunk to jquery function?

I'm trying to pass php array to my jQuery function, I have done and working properly and I'm facing formatting issues. Below are details.

Default function

drawHeroArea : function () {

    !verboseBuild || console.log('proton.graphsStats.drawHeroArea()');
    if($('#hero-area').length)

    proton.graphsStats.graph.Area = Morris.Area({

        element: 'hero-area',

        data: [

          {period: '2010Apr Q1', iphone: 2666, ipad: null, itouch: 2647},

          {period: '2010 Q2', iphone: 2778, ipad: 2294, itouch: 2441},

          {period: '2010 Q3', iphone: 4912, ipad: 1969, itouch: 2501},

          {period: '2010 Q4', iphone: 3767, ipad: 3597, itouch: 5689},

          {period: '2011 Q1', iphone: 6810, ipad: 1914, itouch: 2293},

          {period: '2011 Q2', iphone: 5670, ipad: 4293, itouch: 1881},

          {period: '2011 Q3', iphone: 4820, ipad: 3795, itouch: 1588},

          {period: '2011 Q4', iphone: 15073, ipad: 5967, itouch: 5175},

          {period: '2012 Q1', iphone: 10687, ipad: 4460, itouch: 2028},

          {period: '2012 Q2', iphone: 8432, ipad: 5713, itouch: 1791}

        ],

        xkey: 'period',

        ykeys: ['iphone', 'ipad', 'itouch'],

        labels: ['iPhone', 'iPad', 'iPod Touch'],

        pointSize: 2,

        hideHover: 'auto'

    });

},

I want to pass data in this function

 $LoopD['mydata'] = array();
 foreach($tData as $mon=>$val){ 

        $LoopD[]  =  array(

        'period' => $mon, 
        'iphone' => $val['amber'], 
        'ipad' =>  $val['red'],
        'itouch' => $val['green'],
            );

}
$jsonL  = json_encode($LoopD);  

Javascript:

var jsonL       = $jsonL;

$(document).ready(function(e) {
            drawHeroArea(jsonL);

                });

I'm passing data to function

drawHeroArea : function (jsonL) {

        !verboseBuild || console.log('proton.graphsStats.drawHeroArea()');
        if($('#hero-area').length)

        proton.graphsStats.graph.Area = Morris.Area({

            element: 'hero-area',

            data: [
            jsonL
],

            xkey: 'period',

            ykeys: ['iphone', 'ipad', 'itouch'],

            labels: ['iPhone', 'iPad', 'iPod Touch'],

            pointSize: 2,

            hideHover: 'auto'

        });

    }

I have tried so far but unable to find result i want data folksinging format in my jquery function.

{period: '2010 Q2', iphone: 2778, ipad: 2294, itouch: 2441}

Upvotes: 0

Views: 86

Answers (1)

vakata
vakata

Reputation: 3886

jsonL already is an array, so in your drawHeroArea instead of this:

data: [
    jsonL
],

use this:

data: jsonL

Also make sure you replace this:

$LoopD['mydata'] = array();

With this:

$LoopD = array();

Upvotes: 1

Related Questions