簡體   English   中英

具有選定和禁用模式的類別層次結構(PHP-MySQL)

[英]Category Hierarchy with Selected and Disable Mode (PHP-MySQL)

我使用此代碼制作這樣的下拉列表,在更新模式下支持選定的父級

當前類別下拉列表(選擇類別1.1,類別1的子級) 在此處輸入圖片說明

public static function dropdown($parent, $child = null) {
        static $level = 0;
        static $return = '';

        $search = self::all(array('parent' => $parent, 'status' => 1));

        foreach ($search as $data) {
            $level--;

            $space = '';

            for($i = 1; $i < ($level*-1); $i++) $space .= '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';

            if ($child == $data->id) $selected = 'selected';
            else $selected = '';

            $return .= '<option value="'.$data->id.'" '.$selected.'>'.$space.'- '.$data->name.'</option>';

            self::dropdown($data->id, $child);

            $level++;
        }

        return $return;
    }

問題:當我更新類別1.1時,如何禁用所有類別1.1的孩子和他自己?

目標屏幕截圖: 在此處輸入圖片說明

嘗試這個 :

public static function dropdown($parent, $child = null, $isSelected=false) {
    static $level = 0;
    static $return = '';

    $search = self::all(array('parent' => $parent, 'status' => 1));

    foreach ($search as $data) {
        $level--;

        $space = '';

        for($i = 1; $i < ($level*-1); $i++) $space .= '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';

        if ($child == $data->id || $isSelected){
            $selected = 'selected';
            $isSelected = true;
        }else{
            $selected = '';
        }

        $return .= '<option value="'.$data->id.'" '.$selected.'>'.$space.'- '.$data->name.'</option>';

        self::dropdown($data->id, $child, $isSelected);

        $level++;
    }

    return $return;
}

基本上,您必須轉移當前節點的狀態(是否選中),並將其轉移給他的孩子。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM