根据所选页面打开子菜单

时间:2011-07-02 02:51:54

标签: php menu

我目前正在设计一个垂直下拉菜单(带子菜单),这是它的外观:

Click here to see the screenshot

在左侧,未选择任何菜单项。 在中间和右侧打开子菜单(所选页面为蓝色)。 一个子菜单可以一次打开(一个打开=>另一个关闭)。 菜单内容不是动态的。

最大的问题是当我打开一个新页面时,必须打开所选页面的子菜单。

所以我决定我的所有页面链接都像index.php?p=my_selected_page,并且在文件menu.php中我构建了这个数组:

$menu = array(
    'Présentation' => array(
        'accueil' => 'Accueil',
        'inscription' => 'Inscrivez-vous'
    ),
    'Nos actions' => array(
        'mediation-familiale' => 'Médiation familiale',
        'droit-de-visite' => 'Droit de visite accompagnée',
        'accompagnement-familial' => 'Accompagnement familial'
    )
    // [...]
);

然后我得到了页面$_GET ['p']。我浏览数组并编写菜单html匹配。 如果$_GET['p']是关键子数组之一,我会显示带有CSS类的子菜单,以便打开此菜单。 (并且默认选择链接)。

虽然此解决方案有效,但此系统仅允许我存储index.php?p=my_selected_page等链接。

我希望我可以添加其他链接,例如forum.php(并在menu.php中包含forum.php)等。

如果你有任何想法可以做到这一点,我将不胜感激。

(我是法国人。抱歉拼写错误。)

2 个答案:

答案 0 :(得分:2)

您可以使用$_SERVER["SCRIPT_NAME"]询问脚本文件的名称,然后使用该信息进行验证,而不是通过GET发送变量。 :)

e.g。

<?php

$script_file = $_SERVER["SCRIPT_NAME"];
$no_slashes = explode('/', $script_file);
$script_file = $no_slashes[count($no_slashes) - 1]; 

echo $script_file;

?>

此时,您将文件名存储在$script_file中,您可以将其与数组的键匹配。

希望这有帮助。

答案 1 :(得分:1)

您的问题似乎很混乱,您可以尝试jquery添加一些javascript点击事件。 另一方面,我认为如果您可以使用该框架,则意味着包括您的所有标题