2014-09-03 2 views
0

Я использую этот код, чтобы сделать выпадающий список, как это, поддержка выбранного родителя, когда режим обновленияКатегория Иерархия с Selected и Disable Mode (PHP-MySQL)

Текущая категория выпадающий (выберите категорию 1.1 ребенок категории 1) enter image description here

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 ??

скриншот Цель: enter image description here

+1

Я действительно не понимаю, чего вы пытаетесь достичь, можете ли вы немного уточнить? – 0x1gene

+0

Мне нужна категория выпадающего списка, как цель скриншота. Когда я обновляю категорию 1.1, категорию 1.1 и все дочерние отключить – user3619463

ответ

0

попробовать это:

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; 
} 

В основном вы должны передать статус (выбранный или нет) текущего узла, и передает его в его Чайлдс.

Смежные вопросы