2

codeigniter を使用してアプリを設計し、配列を動的に生成してビューにプッシュしています。単純に思えますが、いくつか問題がありました。

私のモデル関数では、次のように配列を生成します:

foreach ($Q->result_array() as $row)
            {

                $data[]=array(
                              'label'=>$row['students'],
                              'data'=>$row['marks']
                              );         
            }

次に、$data を返します

私の見解では、ここに示すように json_decode を使用します

<script>
  data = <?php echo json_encode($lang);?>;
  data=trim("label", '"');
  //alert(data);
  $.plot($("#graph4"), data, 
    {
        series: {
            pie: { 
                show: true,
                radius: 1,
                label: {
                    show: true,
                    radius: 3/4,
                    formatter: function(label, series){
                        return '<div style="font-size:8pt;text-align:center;padding:2px;color:white;">'+label+'<br/>'+Math.round(series.percent)+'%</div>';
                    },
                    background: { 
                        opacity: 0.5,
                        color: '#000'
                    }
                }
            },
        legend: {
            show: false
        }
});  

</script>

しかし、生成された json は、flotcharts ライブラリと互換性がありません。

[{label:"Mark",data:1},{label:"Jenny",data:1}]

私は持っている

[{"label":"Mark","data":"1"},{"label":"Jenny","data":"1"}]

二重引用符を削除して、データではなくラベルにのみ適用できるようにするにはどうすればよいですか

どんな助けでも大歓迎です、

ありがとう

更新

この問題に直面する人のために、正規表現で問題を解決しました

echo preg_replace('/"([^"]+)"\s*:\s*/', '$1:',json_encode($lang));
4

1 に答える 1

0

json 関数を使用するのではなく、手動で作成できます。私は過去にこのようなものを使用しました。これは、モデルの foreach 内で使用できます。

$data .= '{label:'.$row["students"].',data:'.$row["marks"].'},';

そしてループの後:

$data = "[{$data}]";
于 2013-05-18T02:20:11.140 に答える