【问题标题】:JsTree ul li from mysql来自mysql的JsTree ul li
【发布时间】:2013-02-12 10:26:54
【问题描述】:

我正在寻找从 JsTree 插件提供的脚本 server.php 生成的条目中输出有序列表 (UL -> Li ...) 的最简单方法。

谢谢你的灯

【问题讨论】:

  • 你想通过 php 脚本输出到 HTML 吗?
  • @BattleBit 是的。但是我在 UL 和 LI 之间混合了我的画笔 :o)

标签: php mysql list jstree


【解决方案1】:

也许它可以帮助你:

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>

【讨论】:

  • 我没有设法执行您的建议。但它向我指出了this one,它非常适合我的需求。非常感谢您的帮助。
猜你喜欢
  • 2022-08-03
  • 2011-08-27
  • 1970-01-01
  • 2012-08-25
  • 1970-01-01
  • 2021-11-14
  • 2019-01-31
  • 2022-12-20
  • 1970-01-01
相关资源
最近更新 更多