我有一个包含 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 的情况下工作并查看:Cat1Cat2---SubCat1------SubSubCat1Cat3但是当与上面的代码一起使用时只显示:Cat1Cat2Cat3我认为categoryTree($row['category_id'], $sub_mark.'---');在 WHILE 循环中不起作用。
1 回答
至尊宝的传说
TA贡献1789条经验 获得超10个赞
您需要将递归函数的结果与当前的结果合并。
$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>';
$array[] = $sub_array;
$array = array_merge($array, categoryTree($row['category_id'], $sub_mark.'---'));
- 1 回答
- 0 关注
- 149 浏览
添加回答
举报
0/150
提交
取消