为了账号安全,请及时绑定邮箱和手机立即绑定

尝试使用分类功能收集所有数据并使用 Ajax JSON 发送

尝试使用分类功能收集所有数据并使用 Ajax JSON 发送

PHP
泛舟湖上清波郎朗 2021-08-21 10:37:36
我有一个包含 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.'---'));


查看完整回答
反对 回复 2021-08-21
  • 1 回答
  • 0 关注
  • 149 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信