将PHP数组转换为JQuery数据

时间:2017-03-18 11:35:07

标签: javascript jquery arrays json parsing

我在尝试将PHP数组转换为jQuery时遇到了一些问题。我在论坛上看过很多帖子,但我仍然无法弄清楚是什么问题。

我的PHP代码基本上用于将最后7个日期添加到数组中,并将“a”和“b”分配给相同的值仅用于测试

(#100) Invalid edge (senders) on node type (UnifiedThread)

我应该生成图表的jQuery代码:

$dni = array();
for($i =7; $i>0; $i--){
$dzien = date("Y-m-d", strtotime($i." day"));
$d->y = $dzien;
$chart = mysql_query("SELECT COUNT(*) FROM kolejka WHERE data LIKE '$dzien' AND odbyta = '0'", $link);
while($c = mysql_fetch_array($chart, MYSQL_ASSOC))
{
    $xdi = $c['COUNT(*)'];
}  
$d->a = $xdi;
$d->b = $xdi;
$dni[] = $d;
}
$data = json_encode($dni);

如果我将“数据”放入非动态内容,例如:

var ar = <?php echo json_encode($data); ?>;
alert(ar);
Morris.Bar({
    element: 'pacjenci-chart',
    data: ar,
    xkey: 'y',
    ykeys: ['a', 'b'],
    labels: ['New', 'Old'],
    barColors: ['#33414E', '#1caf9a'],
    gridTextSize: '10px',
    hideHover: true,
    resize: true,
    gridLineColor: '#E5E5E5'
});

它运作得很好。

的输出
        data: [
        { y: 'Oct 10', a: 75, b: 35 },
        { y: 'Oct 11', a: 64, b: 26 },
        { y: 'Oct 12', a: 78, b: 39 },
        { y: 'Oct 13', a: 82, b: 34 },
        { y: 'Oct 14', a: 86, b: 39 },
        { y: 'Oct 15', a: 94, b: 40 },
        { y: 'Oct 16', a: 96, b: 41 }
    ],

    var ar = <?php echo json_encode($data) ?>;

2 个答案:

答案 0 :(得分:0)

你不是在这里做了两次json-encode吗?

$data = json_encode($dni);
var ar = <?php echo json_encode($data); ?>;

摆脱其中一种,它应该像这样工作。

稍微明显是因为所有额外的转义再次编码json字符串它将被转换为字符串:-)。只需回显$ data变量。

答案 1 :(得分:-1)

您对数组进行了两次编码 - 首先是PHP,然后是jQuery。

var ar = <?php echo json_encode($data); ?>;

删除json_encode()

var ar = <?php echo $data; ?>;