2013-02-12 83 views
0

我正在尋找最簡單的方法來從JsTree插件提供的腳本server.php生成的條目中輸出有序列表(UL - > Li ...)。來自mysql的JsTree ul li

Screen Shot of JsTree structure in MySql DB

THX爲你的燈

+0

你想輸出這個由PHP腳本爲HTML? – BattleBit 2013-02-12 10:38:11

+0

@BattleBit是的。但是,我在UL和LI之間混合使用筆刷:o) – MrSo 2013-02-12 13:24:49

回答

3

可能是它可以幫助你:

SELECT * FROM table ORDER BY level; 

您會收到這樣的事:

$a = array(
    array('id' => 1, 'parent_id' => 0, 'level' => 0), 
    array('id' => 2, 'parent_id' => 1, 'level' => 1), 
    array('id' => 3, 'parent_id' => 1, 'level' => 1), 
    array('id' => 4, 'parent_id' => 2, 'level' => 2), 
    array('id' => 5, 'parent_id' => 3, 'level' => 2) 
); 

準備這個數組:

$prepare = array(); 

foreach ($a as $record) { 
    $prepare[$record['id']] = $record; 
} 

和遞歸走路吧:

function getTree($array, $id, $level = 0) 
{ 
    if ($array[$id]['level'] != $level) { 
     return; 
    } 
    echo '<ul>' . PHP_EOL; 
    echo '<li>' . $id; 
    foreach ($array as $data) { 
     if (($data['parent_id'] === $id)){ 
      getTree($array, $data['id'], $level + 1); 
     } 

    } 
    echo '</li>'. PHP_EOL; 
    echo '</ul>'. PHP_EOL; 
} 


getTree($prepare, 1); 

它例如做回:

<ul> 
<li>1<ul> 
<li>2<ul> 
<li>4</li> 
</ul> 
</li> 
</ul> 
<ul> 
<li>3<ul> 
<li>5</li> 
</ul> 
</li> 
</ul> 
</li> 
</ul> 
+0

我沒有設法運行您的建議。但它指出我[這一個](http://stackoverflow.com/a/4414040/1458189),完全符合我的需求。非常感謝您的幫助。 – MrSo 2013-02-13 10:36:24