ループのヘルプが必要です。サブメニューを含むメニューを作成しようとしています。データベースには、5 つのフィールド ( link_position、link、link_name、link_title、sub_menu )を持つ tblMenu という名前のテーブルがあります。
link_positionフィールドは、メニュー項目の位置をソートするためのものです。
linkフィールドには、メニュー項目のリンクが格納されます。
link_nameは、メニュー項目の名前を保持します。
link_titleは、メニュー項目のリンク タイトルを保持します。
sub_menuは、メニューのサブ項目 (ドロップダウン) を格納します。
これがtblMenuのプレビューです
これがループのコードです
<ul>
<%
msql = "SELECT * FROM tblMenu ORDER BY [link_position] ASC"
Set RS = Server.CreateObject("ADODB.Recordset")
Set RSsub = Server.CreateObject("ADODB.Recordset")
RS.Open msql, Conn, 1,3
SET RSsub = Conn.execute ("SELECT * FROM tblMenu ORDER BY [link_position] ASC")
If Not RS.EOF Then
Do
Response.Write("<li><a href=""" & RS("link") & """ title =""" & RS("link_title") & """>" & RS("link_name") & "</a>" & vbcrlf)
If Not RSsub.EOF Then
Response.Write("<ul class=""sub-menu"">" & vbcrlf)
Do While Not RSsub.EOF
Response.Write(RSsub("sub_menu") & vbcrlf)
RSsub.MoveNext()
Loop
Response.Write "</ul>" & vbcrlf
End If
' RSsub.Close
Response.Write("</li>" & vbcrlf)
RS.MoveNext()
Loop Until RS.EOF
End If
%>
</ul>
出力
<ul>
<li><a href="/asp/" title ="Main Page">Home</a>
<ul class="sub-menu">
<li><a href="#">Inquiry</a></li>
<li><a href="#">Inquiry2</a></li>
<li><a href="#">ELS</a></li>
<li><a href="#">AP</a></li>
</ul>
</li>
<li><a href="/asp/page.asp?pID=1" title ="About us">About</a></li>
<li><a href="/asp/page.asp?pID=2" title ="E-Learning System">E-Learning</a></li>
<li><a href="/asp/page.asp?pID=5" title ="Academic Policies">Academic Policies</a></li>
<li><a href="/asp/page.asp?pID=6" title ="Facilities">Facilities</a></li>
<li><a href="/asp/events.asp" title ="Events Gallery">Events</a></li>
</ul>
問題
sub_menus のループは、メイン ループの最初の Recordset の下にあるすべてのレコードをスローします。期待される出力は次のようになります。
<ul>
<li><a href="/asp/" title ="Main Page">Home</a></li>
<li><a href="/asp/page.asp?pID=1" title ="About us">About</a>
<ul class="sub-menu">
<li><a href="#">Inquiry</a></li>
<li><a href="#">Inquiry2</a></li>
</ul>
</li>
<li><a href="/asp/page.asp?pID=2" title ="E-Learning System">E-Learning</a>
<ul class="sub-menu">
<li><a href="#">ELS</a></li>
</ul>
</li>
<li><a href="/asp/page.asp?pID=5" title ="Academic Policies">Academic Policies</a>
<ul class="sub-menu">
<li><a href="#">AP</a></li>
</ul>
</li>
<li><a href="/asp/page.asp?pID=6" title ="Facilities">Facilities</a></li>
<li><a href="/asp/events.asp" title ="Events Gallery">Events</a></li>
</ul>