提问者:小点点

html内部选择中的PHP动态选项


我有类别和子类别取自API json文件,API返回具有“父”属性的类别对象,主类别对象具有等于0的父属性,子类别对象具有等于主类别ID的父属性。

主要类别的代码是`

<label for="Category"> Main Category</label>
                     <select id="category">
                    <?php foreach ($obj as $category):?>
                    <?php if($category->parent==0) : ?>
                     <option value=<?=$category->id?>><?=$category->name?></option>
                     <?php endif; ?>
                     <?php endforeach; ?>
                     </select>

`$obj等于从API获取的json解码。
如何编写子类别的代码? 我希望在子类别->parent等于上面选择的所选类别“类别->id”的id的情况下创建选项


共1个答案

匿名用户

所以$obj是所有类别的列表。 有些是父母,有些是孩子(子类)?

有没有方法在API端嵌套类别,以便它在父对象上以var的形式返回子对象,或者为子对象创建一个单独的对象,您可以为每个父对象访问这些子对象?

如果这些都不是选项,那么可以在创建选择字段之前格式化类别,以便更干净地生成子类,或者在当前foreach中添加一个嵌套循环,检查类别是否是当前类别的子类。

这很难看,我还没有测试过它,但是您也许可以做如下操作:

foreach ($obj as $category) {
    if ($category->parent==0) {
        echo "<option value='" . $category->id . "'>$category->name</option>"
        foreach ($obj as $subCategory) {
            if ($subCategory->parent != 0 && $subcategory->parent == $category->id) {
                echo "<option value='" . $subcategory->id . "'>$subcategory->name</option>"
            }
        }
    }
}