gpt4 book ai didi

php - 利用 Foreach 生成子菜单

转载 作者:可可西里 更新时间:2023-11-01 07:32:42 25 4
gpt4 key购买 nike

我正在处理两个相互交互的功能,此时我正在尝试修复它的子菜单部分。

我的菜单是用

生成的
public function CreateNavigation() {
global $db;
$query = <<<SQL
SELECT id,name
FROM pages
WHERE enabled = :enabled
AND main = :main
SQL;
$resource = $db->sitedb->prepare( $query );
$resource->execute( array (
':enabled' => 1,
':main' => 1,
));
foreach($resource as $menu){
$this->parentid = $menu['id'];
echo "<li><a href='viewPage.php?id=".$menu['id']."'>".$menu['name']."</a>
".self::GetSublinks()."</li>";
}

}

然后 GetSublinks 接管确定菜单的下拉列表

    public function GetSublinks() {
global $db;
$query = <<<SQL
SELECT id,name
FROM pages
WHERE parentid = :parentid
AND enabled = :enabled
SQL;
$resource = $db->sitedb->prepare( $query );
$resource->execute( array (
':parentid' => $this->parentid,
':enabled' => 1,
));
$row_count = $resource->rowCount();
if($row_count >= 1) {
return "<ul>";
foreach($resource as $row){
return "<li><a href='viewpage.php?id=".$row['id'].">".$row['name']."</a></li>"
}
return "</ul>";
}
}

现在主菜单本身运行良好,甚至子链接在一定程度上也运行良好。他们检查并修改主链接以显示它是否有子链接,但我遇到的问题是在子链接中它只会显示最后一个链接,所以我不能有多个下拉菜单因为这。我还尝试将子链接中的 foreach 更改为

while($row = $resource->fetch(PDO::FETCH_ASSOC))

没有用。我的菜单在没有下拉菜单的情况下工作正常,但添加下拉菜单会很好。

var_dump($resource) 结果:

object(PDOStatement)#7 (1) { ["queryString"]=> string(86) " SELECT id,name FROM pages WHERE parentid = :parentid AND enabled = :enabled" } object(PDOStatement)#7 (1) { ["queryString"]=> string(86) " SELECT id,name FROM pages WHERE parentid = :parentid AND enabled = :enabled" } 

var_dump($row) 结果:

array(2) { ["id"]=> string(1) "2" ["name"]=> string(10) "Create New" } array(2) { ["id"]=> string(1) "3" ["name"]=> string(14) "Delete Listing" } 

最佳答案

我认为你的字符串连接和返回值是错误的。它应该是这样的:

    if($row_count >= 1) {
$subMenu = "";
$subMenu .= "<ul>";
foreach($resource as $row){
$subMenu .= "<li><a href='viewpage.php?id=".$row['id'].">".$row['name']."</a></li>"
}
$subMenu .= "</ul>";
return $subMenu;
}

你应该继续连接,最后只返回子菜单。

关于php - 利用 Foreach 生成子菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30067851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com