我有一个包含 category_id 、 name、 parent_id 和 sort_order 的多级分类表。我想选择所有类别并在树视图中显示它们。当使用它而不用 JSON 发送时,它可以工作,但是当用 JSON 发送它时,只显示父类别而不显示子类别。
我的代码是:
function categoryTree($parent_id = 0, $sub_mark = ''){
global $connection;
$query = 'SELECT * FROM ws_categories WHERE parent_id = :parent_id ORDER BY sort_order ASC, name ASC';
$statement = $connection->prepare($query);
$statement->execute(['parent_id' => $parent_id]);
$filtered_rows = $statement->rowCount();
$array = array();
while ($row = $statement->fetch()) {
$sub_array = array();
$sub_array[] = $sub_mark.$row['name'];
$sub_array[] = '<button type="button" name="update" id="'.$row["category_id"].'" class="btn btn-info btn-sm update"><span class="glyphicon glyphicon-pencil"></span></button>';
categoryTree($row['category_id'], $sub_mark.'---');
$array[] = $sub_array;
}
return $array;
}
$data = categoryTree();
$output = array(
"draw" => intval($_POST["draw"]),
"recordsTotal" => $filtered_rows,
"recordsFiltered" => get_total_all_records(),
"data" => $data
);
echo json_encode($output);
让它在没有 JSON 的情况下工作并查看:
Cat1
Cat2
---SubCat1
------SubSubCat1
Cat3
但是当与上面的代码一起使用时只显示:
Cat1
Cat2
Cat3
我认为categoryTree($row['category_id'], $sub_mark.'---');在 WHILE 循环中不起作用。
至尊宝的传说