首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >尝试使用分类函数收集所有数据,并使用Ajax JSON发送

尝试使用分类函数收集所有数据,并使用Ajax JSON发送
EN

Stack Overflow用户
提问于 2019-06-13 06:57:37
回答 1查看 24关注 0票数 0

我有一个用于多级分类的表,其中包含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循环中工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-13 07:41:03

你需要将递归函数的结果与你当前的结果进行merge

$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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56571340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档