Ik ben bezig met een database gerelateerd menu. Dat gaat perfect en hij haalt ook de gegevens goed op. Alleen nu wil ik het zo maken dat hij de parents eerst alleen laat zien en pas wanneer je er op klikt, dat hij als er een child aanhangt, de childs eronder toont of anders naar de betreffende pagina gaat wanneer er geen child aan zit.
De volgende code gebruik ik hiervoor (het opbouwen van het menu):
Het zal met iets van javascript moeten denk ik. Graag zou ik hier wat hulp bij willen hebben zodat ik hier mee verder kan.PHP Code:<?php
// haal menu items op
$result = mysql_query("
SELECT
id, parentID, name, link
FROM
menu
ORDER BY
parentID, name
");
// array voor de child en parent relaties van de items
$menuData = array(
'items' => array(),
'parents' => array(),
);
while ($menuItem = mysql_fetch_assoc($result))
{
$menuData['items'][$menuItem['id']] = $menuItem;
$menuData['parents'][$menuItem['parentID']][] = $menuItem['id'];
}
function buildMenu($parentID, $menuData)
{
$html = '';
if (isset($menuData['parents'][$parentID]))
{
$html = '<ul>';
foreach ($menuData['parents'][$parentID] as $itemId)
{
$html .= '<li><a href="' . $menuData['items'][$itemId]['link'] . '">' . $menuData['items'][$itemId]['name'] . '</a>';
// recursive childitems opzoeken
$html .= buildMenu($itemId, $menuData);
$html .= '</li>';
}
$html .= '</ul>';
}
return $html;
}
// menu weergave a.d.h.v. buildMenu
echo buildMenu(0, $menuData);
?>
Dank,
Dion

Likes:


Quote