2

我在我的项目中使用Google Orgchart。我正在JSON OBJECT从 PHP 文件返回。

问题

我的问题是当我对值进行硬编码时,它工作正常。当我从 PHP 文件返回数据时。它不起作用。我猜从 PHP 文件返回的数据格式不正确。下面的文件。

$result = mysql_query("SELECT * FROM emp"); 
    while($row = mysql_fetch_array( $result )) {
        $arr1 = array(
            'v' => $row['name'],
            'f' => $row['name']+'<div style="color:red; font-style:italic">President</div>',
            '' => $row['rep'],
            '' => $row['des'],
        );
        array_push($dataarray, $arr1);
    }

echo json_encode($dataarray);

它返回如下对象

在此处输入图像描述

应该如何

JSON OBJECT下面是我的硬线

   [
      [{v:'Prabhkar', f:'Prabhkar<div style="color:red; font-style:italic">President</div>'},
       '', 'The President'],
      [{v:'Raguram', f:'Raguram<div style="color:red; font-style:italic">GM</div>'},
       'Prabhkar', 'GM']
    ]

控制台截图如下:

在此处输入图像描述

我是否需要在 PHP 文件中再创建一个数组。我想如何根据上面的屏幕截图更改 PHP 数组。对不起我的英语不好。谢谢你。

4

3 回答 3

2

您需要将 'v' 和 'f' 包装在一个数组中,然后将其他值推送到父数组。

$result = mysql_query("SELECT * FROM emp"); 
    while($row = mysql_fetch_array( $result )) {
        $arr1 = array(
            array(
                'v' => $row['name'],
                'f' => $row['name'] . '<div style="color:red; font-style:italic">President</div>'
            ),
            $row['rep'],
            $row['des']
        );
        array_push($dataarray, $arr1);
    }

echo json_encode($dataarray);
于 2017-04-18T06:31:21.340 回答
1

你的内部结构是错误的。您的内部结构是一个数组,第一个是映射,后跟两个值。您当前的实现是一个数组,只有一个地图。

$result = mysql_query("SELECT * FROM emp"); 
    while($row = mysql_fetch_array( $result )) {
        $arr1 = array(
            array(
                'v' => $row['name'],
                'f' => $row['name'] . '<div style="color:red; font-style:italic">President</div>',
            ),
            $row['rep'],
            $row['des']);
        array_push($dataarray, $arr1);
    }

echo json_encode($dataarray);
于 2017-04-18T06:30:22.937 回答
1

在您的硬编码数组中,第一个键内部有一个数组,因此您必须像这样更改代码

$result = mysql_query("SELECT * FROM emp"); 
$dataarray = [];
while($row = mysql_fetch_array( $result )) {
    $arr1 = array(
        array(
              'v'=> $row['name'], 
              'f' => $row['name'].'<div style="color:red; font-style:italic">President</div>',),
        $row['rep'],
        $row['des'],
    );
    array_push($dataarray, $arr1);
}

echo json_encode($dataarray);
于 2017-04-18T06:32:42.433 回答