codeigniter 将JSON转换为变量

4c8rllxm  于 2023-03-27  发布在  其他
关注(0)|答案(2)|浏览(128)

我不会从数据库为jvectormap创建MapData,如下所示

{"AP":3,"DE":1,"GB":2,"ID":24,"US":10}

但我的代码总是这样返回

["{\"AP\":3}","{\"DE\":1}","{\"GB\":2}","{\"ID\":24}","{\"US\":10}"]

这是我的JavaScript

$(document).ready(function () {

    var mapData ={} 
               $.ajax({ url: '/orders/map', type: 'GET', dataType: 'json' }).success(function (data) {
               mapData = (data);
            });
    var dd =    JSON.stringify( mapData, null, '\t'); 

        $('#world-map').vectorMap({
            map: 'world_mill_en',

            regionStyle: {
                initial: {
                    fill: '#e4e4e4',
                    "fill-opacity": 1,
                    stroke: 'none',
                    "stroke-width": 0,
                    "stroke-opacity": 0
                }
            },
            series: {
                regions: [{
                    values: dd,
                    scale: ["#1ab394", "#22d6b1"],
                    normalizeFunction: 'polynomial'
                }]
            },
            onRegionTipShow: function (e, el, code) {
                console.log(dd[code]);
                    var mapcode = ( dd[code] ) ? ' ( ' + dd[code] + ' Visitor/Visitors  )' : ' ( No visitor yet! )';
                el.html(el.html() + mapcode );
            }
        });
    }); 

this my codeigniter controllers

        function map(){
        $rows = array();
        $query = $this->db->query('SELECT country, COUNT(1) AS rpt_count FROM vistors GROUP BY country');   
        foreach($query->result() as $row)
        {    
        $rows[] = '{"'.$row->country.'":'.$row->rpt_count.'}';
        }      

    $this->output
        ->set_content_type('application/json')
        ->set_output(json_encode($rows));
        }

Comebody可以帮助我

xbp102n0

xbp102n01#

你需要parse the data来获取一个你可以从中获取数据的对象。

var mapData = JSON.parse(data);
kxeu7u2r

kxeu7u2r2#

<php
$query = $this->db->query('SELECT country, COUNT(1) AS rpt_count FROM vistors GROUP BY country');   
$rows = "{";
$data_count = 0;
$data_length = count($query);
foreach($query->result() as $row){
   $key = $row->country;
   $value = $row->rpt_count;
   $rows .=$key.':'.$value;
   $data_count +=1;
   if($data_count != $data_length){
       $rows .=',';
   }
}
$rows .= "}";
return $rows;

相关问题