如何使用php生成jqtree的json响应?我尝试过json_encode,但它留下了很多额外的数据。我想知道是否有人已经强迫这扇门。
如何实现这样的结构:
var data = [
{
label: 'node1',
children: [
{ label: 'child1' },
{ label: 'child2' }
]
},
{
label: 'node2',
children: [
{ label: 'child3' }
]
}
];
形成mysql id,parent,lable结构?
任何帮助将不胜感激
答案 0 :(得分:1)
"额外数据"在json字符串中是由于json_encode和关联数组。 如果您尝试使用json_encode和索引数组,您将获得一个如此不同的json字符串,而没有'标签'。
然而,jqtree需要一个混合的json,一些' string'键和一些索引'密钥。
然后,为了在PHP中获取jqtree的有效json,你应该从查询中使用以下函数来生成数组,并在对数组执行json_encode之后返回:
function arrayValuesRecursive($array)
{
$temp = array();
foreach ($array as $key => $value) {
if (is_numeric($key)) {
$temp[] = is_array($value) ? arrayValuesRecursive($value) : $value;
} else {
$temp[$key] = is_array($value) ? arrayValuesRecursive($value) : $value;
}
}
return $temp;
}
例如:
$arrayFromQuery = array(...);
$arrayFromQuery = arrayValuesRecursive($arrayFromQuery);
$jqTreeJSON = json_encode($arrayFromQuery);