私はdynatreeプラグインを使用してオンラインアプリをコーディングし、toDict()メソッドを使用してツリーデータをJavaScriptオブジェクトに変換し、データベースに保存しています。
私の問題は:
このデータをHTML(ul-li)構造に変換する方法が必要です。
例えば
Title 1
Title 2
+Title 2.1
+Title 2.2
Title 3
フォームは次のように変換する必要があります。
<ul>
<li>Title 1</li>
<li>Title 2
<ul>
<li>Title 2.1</li>
<li>Title 2.2</li>
</ul>
</li>
<li>Title 3</li>
</ul>
上記のフォーム。PHPでどのように行うことができますか(データはデータベースから提供されます)?
データサンプル:
{"title":"Products", "key":"products", "isFolder":true, "isLazy":false, "tooltip":null, "href":null, "icon":null, "addClass":null, "noLink":false, "activate":false, "focus":false, "expand":true, "select":false, "hideCheckbox":true, "unselectable":false, "children":[{"title":"Product 1 Category", "key":"products-product-1-category", "isFolder":true, "isLazy":false, "tooltip":"Product 1", "href":null, "icon":null, "addClass":null, "noLink":false, "activate":false, "focus":false, "expand":true, "select":false, "hideCheckbox":false, "unselectable":false, "children":[{"title":"Product 1.1 Category", "key":"products-product-1-product-11-category", "isFolder":true, "isLazy":false, "tooltip":"Product 1.1 Category", "href":null, "icon":null, "addClass":null, "noLink":false, "activate":true, "focus":false, "expand":true, "select":false, "hideCheckbox":false, "unselectable":false, "children":[{"title":"Product Name", "key":"products-product-1-category-product-11-category-product-name", "isFolder":false, "isLazy":false, "tooltip":"Product Name", "href":null, "icon":null, "addClass":null, "noLink":false, "activate":false, "focus":false, "expand":false, "select":false, "hideCheckbox":false, "unselectable":false}]}]}]}
注:isFolderは、リストアイテム(li)になりますが、子のunordered-list(ul-li)構造を持つことを意味します。
上記のデータ構造は次のとおりです。
Products (isFolder = true)
+Product 1 Category (isFolder = true)
+Product 1.1 Category (isFolder = true)
+Product Name (isFolder = false)
およびHTMLフォームは、以下のようになります(またはその他の展開可能/折りたたみ可能なリストスタイルのメニューフォーム)。
<ul>
<li>Products
<ul>
<li>+Product 1 Category
<ul>
<li>+Product 1.1 Category
<ul>
<li>+Product Name</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>