#coldfusion #lucee
#coldfusion #люси
Вопрос:
У меня следующий тип структуры https://prnt.sc/wkerdv
в приведенном выше только у первого есть дочерние элементы, но есть вероятность, что у дочерних элементов могут быть дочерние элементы и так далее, но я предпочитаю отображать только 3 уровня в глубину в виде горизонтального меню
я пытаюсь создать цикл, в котором мне нужно было правильно добавить цикл для создания строки меню, я пытаюсь создать меню, подобное этому
итак, вот что я пытаюсь
<cfoutput>
<ul>
<cfloop from="1" to="#arrayLen(data.item)#" index="i">
<cfset x = data.item[i]>
<cfloop collection="#x#" item="key">
<cfif Structkeyexists(key,'Item')>
<cfloop from="1" to="#arrayLen(data.item)#" index="i">
<cfset x = data.item[i]>
<cfelse>
</cfif>
<cfdump var="#key#">
<!--- <cfloop from="1" to="#arrayLen(key.item)#" index="d">
<cfset n = key.item[d]>
<!--- <li>#d#:#n[d]#</li> --->
<cfdump var="#n#">
</cfloop>
<li>#key#:#x[key]#</li>--->
</cfloop>
</cfloop>
</ul>
</cfoutput>
html-код за приведенным выше вторым экраном выглядит следующим образом
<ul class="menu-list">
<cfloop from="1" to="#ArrayLen(data.menu.item)#" index="toplevel">
<li><a href="01_Home Page.html">#toplevel#</a>
</cfloop>
<li class="active"><a href="01_Home Page.html">HOME</a>
<ul class="menu-dropdown">
<li><a href="01_Home Page.html">Home One</a></li>
<li><a href="02_Home Page.html">Home Two</a></li>
<li><a href="03_Home Page.html">Home Three</a>
<ul class="thirdlevel-menu">
<li><a href="">Thirdlevel</a></li>
<li><a href="">Thirdlevel</a></li>
<li><a href="">Thirdlevel</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="">ABOUT</a></li>
<li><a href="">SHOP</a>
Комментарии:
1. решается с помощью рекурсии запроса
2. Вы должны написать свой ответ так, чтобы, если кто-то еще застрянет, он знал, как его решить.
3. Пожалуйста, добавьте свое решение с помощью рекурсии вашего запроса