2017-09-08 2 views
0

Ich habe Baumstruktur in Drop-Down-Liste zu erstellen, wieWie behindertes Kind in Baumstruktur mit PHP

enter image description here

I Rekursion Funktion verwenden den Baum zu schaffen.

Meine Datenbank-Struktur wie:

enter image description here

Baumstruktur Code wie folgt:

function fetchCategoryTree($parent = 0, $spacing = '', $user_tree_array = '') { 

     if (!is_array($user_tree_array)) 
     $user_tree_array = array(); 

     $module = new Modulemaster(); 
     $module->cquery = "SELECT id,sub_module_id,module_name FROM module_master WHERE 1 AND sub_module_id = $parent AND cmp_id = 0 AND is_delete = 0 ORDER BY id ASC"; 
     $module->action = "get"; 
     $module_res = $module->process(); 
     if($module_res['count'] > 0) { 
      foreach($module_res['res'] as $module_row_key => $module_row) { 
       $user_tree_array[] = array("id" => $module_row['id'], "module_name" => $spacing . $module_row['module_name']); 
       $user_tree_array = fetchCategoryTree($module_row['id'], $spacing . ' &nbsp     ', $user_tree_array); 
      } 
     } 
     return $user_tree_array; 
    } 

<select class="form-control required" id="sub_module_id" name="sub_module_id"> 
    <option value="">--Select--</option> 
      <?php 
      $categoryList = fetchCategoryTree($module_id,$spacing = '', $user_tree_array = ''); 
       foreach ($categoryList as $row) { ?> 
      <option value="<?php echo $row['id']; ?>" <?php echo selected($sub_module_id, $row['id']); ?>><?php echo $row['module_name']; ?> 
     </option> 
     <?php 
      } ?> 
</select> 

Wie kann ich behindertes Kind.

Bitte helfen Sie mir, Vielen Dank im fortgeschrittenen

+0

Ich glaube, Sie für "optgroup" suchen (https://developer.mozilla.org/de-DE/docs/Web/HTML/Element/optgruppe). –

+0

@ JoséM.Carnero, Kann aber sein Wie kann ich dieses Kind nur deaktivieren? – Angel

+0

Lesen Sie die Dokumentation für "optgroup", Sie können eine Bedingung hinzufügen, um die Optionen zu verwenden, die Sie als Titel für die Gruppen deaktivieren möchten. –

Antwort

0

Wenn Sie Option, dies zu deaktivieren versuchen:

foreach ($categoryList as $row) 
{ 
    if(in_array($row['id'],array(4,5,6)) // array(4,5,6) id's you want to disable 
    { 
     $disabled = ' disabled="1" '; 
    } 
    else 
    { 
     $disabled = ''; 
    } 
?> 
    <option value="<?php echo $row['id']; ?>" <?php echo selected($sub_module_id, $row['id']); ?> <?php echo @$disabled; ?>> 
     <?php echo $row['module_name']; ?> 
    </option> 
<?php } ?> 
+0

Es gibt keine festen IDs. Zum Beispiel in oben, wenn meine Werkzeugkasten Kind vorstarten Handwerkzeuge/elektrische ..... wenn prestart Handwerkzeuge/elektrische ..... Modul haben ein anderes Kind dh abc dann deaktiviert Mein Werkzeug BOx und Prestart Handwerkzeugen/Elektro ... ..auch – Angel

+0

Baum werden dynamisch erzeugt, es gibt kein fixiertes Modul ... – Angel

+0

Der einfachste Weg ist, eine Spalte in Ihrer Tabelle hinzuzufügen und dort zu speichern, wenn ein Modul aktiviert oder deaktiviert ist. Dann kannst du mit einem if() was immer du willst umwandeln. – Militaru