ホームページ  >  記事  >  バックエンド開発  >  PHP SMARTY 二重ループ (再帰) 出力分類関連の質問

PHP SMARTY 二重ループ (再帰) 出力分類関連の質問

WBOY
WBOYオリジナル
2016-06-13 13:30:211075ブラウズ

PHP SMARTY 二重ループ (再帰) 出力分類問題
テンプレート

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->{foreach from=$classlist item=newsclass}
    <DIV class="bg03"><a href="news.php?classid={$newsclass.id}&{if $newsclass.ispro eq 1}ispro=true{/if}" target="main">{$newsclass.classname}</a></DIV>
{/foreach}


プログラム
PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->$sql = "select * from jh_newsclass where parentid = 0";
$result = $mysqli->query($sql);
while ($row = $result->fetch_row()) {
    $classlist[] = array(
        'id'=>$row[0],
        'classname'=>$row[2],
        'parentid'=>$row[1],
        'ispro'=>$row[3],    
        );
}
$result->close();
$mysqli->close();
$smarty->assign('classlist',$classlist);
$smarty->assign('webname',Webname);
$smarty->display('admin/left.htm');




これでは第 1 レベルの分類しか出力できません。第 1 レベルの分類の下に第 2 レベル...第 3 レベル...を出力する必要があります。

出力効果の前に ASP を使用しました

HTML コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->              <DIV class="bg03">新闻专题</DIV>
<div class="forumlist_groups"><DIV align=left><ul><li class="forumli"><a href='news.asp?classid=3&newsclass=3' target='main'>+--<img id="folder180" src="images/leaf.gif" width="18" height="18" align="absmiddle"><font color="">新闻动态</font></a></li><li class="forumli"><a href='news.asp?classid=6&newsclass=6' target='main'>+--<img id="folder180" src="images/leaf.gif" width="18" height="18" align="absmiddle"><font color="">美大专题</font></a></li><li class="forumli"><a href='news.asp?classid=16&newsclass=16' target='main'>+--<img id="folder180" src="images/leaf.gif" width="18" height="18" align="absmiddle"><font color="">月兔专题</font></a></li></ul></div></div>

    <DIV class="bg03"><a href="news.asp?classid=14&newsclass=14" target="main">供求信息</a></DIV>

              <DIV class="bg03">产品展示</DIV>
<div class="forumlist_groups"><DIV align=left><ul><li class="forumli"><a href='news.asp?classid=18&ispro=true&newsclass=18' target='main'>+--<img id="folder180" src="images/leaf.gif" width="18" height="18" align="absmiddle"><font color="">美大灶具</font></a></li><li class="forumli"><a href='news.asp?classid=19&ispro=true&newsclass=19' target='main'>+--<img id="folder180" src="images/leaf.gif" width="18" height="18" align="absmiddle"><font color="">月图厨柜</font></a></li><li class="forumli"><a href='news.asp?classid=20&ispro=true&newsclass=20' target='main'>+--<img id="folder180" src="images/leaf.gif" width="18" height="18" align="absmiddle"><font color="">集成效果</font></a></li></ul></div></div>


元の ASP コード

HTML コード






    <DIV class="bg03"><a href="news.php?classid=<%=rs("id")%>&newsclass=<%=rs("id")%> <%if rs("ispro") then response.Write("&ispro=true")%>" target="main"><%=rs("classname")%></a> </DIV>

              <DIV class="bg03"><%=rs("classname")%></DIV>

        <%call showparentclass("+","--",rs("id"))%>
<%
rs.movenext
曲がります
rs.close
setrs=なし
%>
<%
サブ showparentclass(astr,tree,parentid)
    dim show親クラス、テンプレ
    set showparentclassrs = conn.execute("select * from Jh_newsclass whereparentid = " &parentid)
    showparentclassrs.eof の場合、
        出口サブ
    それ以外
    response.Write("<div class=""forumlist_groups""><DIV align=left><ul>")
        showparentclassrs.eof を表示しない間

            response.Write"<li class=""forumli"">"
            set temprs = conn.execute("select * from Jh_newsclass whereparentid = " & showparentclassrs("id"))
            temprs.eof と temprs.bof の場合
                response.Write"<a href='news.php?classid="&showparentclassrs("id")
                if showparentclassrs("ispro") then response.Write("&ispro=true")
                response.Write"&newsclass="&showparentclassrs("id")&"' target='main'>" & astr & Tree & "<img id=""folder180"" src=""images/leaf.gif" " width=""18"" height=""18"" align=""absmiddle""><font color=""">" & showparentclassrs("classname")&"</font> </a>」
            それ以外
                response.Write astr & Tree & "<img id=""folder180"" src=""images/folderClosed.gif"" width=""18"" height=""18"" align=""absmiddle"" >" & showparentclassrs("クラス名")
            終了する場合
            設定温度 = 何もしない
            応答。「</li>」と書きます。


            showparentclass(astr,tree&"--",showparentclassrs("id")) を呼び出す
        showparentclassrs.movenext
        曲がります
    response.Write("</ul></div></div>")
    終了する場合
エンドサブ
%>
 <!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。