я использую 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 в соответствии с приведенным выше снимком экрана. Извините за мой английский. Спасибо.
Вам нужно обернуть ‘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);
В вашем жестко запрограммированном массиве первый ключ имеет массив внутри, поэтому вы должны изменить свой код следующим образом
$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);
Ваша внутренняя структура неверна. Ваша внутренняя структура — это массив, первый из которых — карта, за которой следуют два значения. Ваша текущая реализация представляет собой массив, содержащий только карту.
$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);