我有一个包含 21 个主要项目的菜单,其中大多数都有自己的子项目。我希望能够只显示其中的第一个“16” -$menu_number['VALUE']
在数据库中包含这个值,所以只有前 16 个会正常显示,其余的应该在第 16 个之后的“更多”项下可用主要项目,其中将包含其余项目及其子项目。
现在是:
家
服务 > 服务 1、服务 2
投资组合 > 投资组合 1、投资组合 2
......
项目 > 项目 1、项目 2、项目 3
关于我们 > 分项一、分项二
联系方式 > 子项 1、子项 2
它应该是这样的:
家
服务 > 服务 1、服务 2
投资组合 > 投资组合 1、投资组合 2
......
项目 > 项目 1、项目 2、项目 3
更多 > 关于我们 ( > sub-item1, sub-item2), 联系方式 ( > sub-item1, sub-item2)
这是当前代码:
$menu_number = mysql_fetch_array($menu_number, MYSQL_ASSOC);
echo $menu_number['VALUE'];
$counter = 0;
$sql = "SELECT * FROM $tablename WHERE `Parent` = '0' AND Type LIKE 'top' ORDER BY `Order` ASC";
$result = mysql_query($sql) or die ("Error: Query Failed! " .mysql_error());
$output = "<nav><ul>";
while ($rs = mysql_fetch_array($result)) {
$rs['Link'] = preg_replace('/\|.*$/','',$rs['Link']);
$output .= "<li class='menu_top' id='".$rs['ID']."'><a href='".$rs['Link']."'>".$rs['Name']."</a>".++$counter;
$sql2 = "SELECT * FROM $tablename WHERE `Parent` = '".$rs['ID']."' ORDER BY `Order` ASC";
$result2 = mysql_query($sql2) or die ("Error: Query Failed! " .mysql_error());
if (mysql_num_rows($result2) != 0) {
$output .= "<ul class='menu_sublinks' id='".$rs['ID']."'>";
while ($rs2 = mysql_fetch_array($result2)){
$rs2['Link'] = preg_replace('/\|.*$/','',$rs2['Link']);
$output .= "<li class='menu_sublink' id='".$rs['ID']."'><a href='".$rs2['Link']."'>".$rs2['Name']."</a></li>";
}
$output .= "</ul></li>";
}
}
$output .="</ul></nav";
我已经有一个计数器$counter
,现在我需要找到一种方法来添加一个<li>More</li>
和一个新的<ul>
内部,包含 17...21 <li>
..
我希望我解释得足够好,我试过自己这样做,但我有点困惑..谢谢你的帮助..