检查foreach语句值

时间:2014-05-02 07:01:24

标签: php mysql if-statement drop-down-menu foreach

我有这样的代码。

    <ul>
    <?php foreach (getUserMainMenus($get_user_id) as $get_main_menu): ?>
    <li class='has-sub'><a href='#'><span><?=$get_main_menu['menu_name']; ?></span></a>
    <ul>
    <?php foreach (getUserChildMenu($get_main_menu['m_id'], $get_user_id) as $sub_menu): ?>
    <li class='has-sub'><a href='<?=$sub_menu['menu_url']; ?>'><span><?=$sub_menu['menu_name']; ?></span></a>

    <ul>
    <?php foreach (getUserSubChildMenu($sub_menu['m_id'], $get_user_id) as $sub_sub_menu): ?>
    <li class='has-sub'><a href='<?=$sub_sub_menu['menu_url']; ?>'><span><?=$sub_sub_menu['menu_name']; ?></span></a></li>
    <?php endforeach; ?>   
    </ul>
    </li>
    <?php endforeach; ?>   
    </ul>
    </li>
    <?php endforeach; ?>   
    </ul>

第二个foreach的结果集是这样的。

    Array ( [m_id] => 9 [menu_name] => MenuName [parent_menu_id] => 4 [menu_order] => 1 [menu_url] => menu1.php [status] => 1 )

如何在所有foreach语句之后检查if条件。 换句话说,我需要获取$ sub_menu值,如果有值显示li标签。 另外 - 我需要检查$ sub_sub_menu变量,如果有值显示li标签。

我如何实现这一目标?

谢谢, Kimz

1 个答案:

答案 0 :(得分:1)

我想您尝试创建导航菜单。子条目应仅在页面访问者选择顶部菜单项时显示。

是吗?

好的,如果是的话。你可能会想到这一点。

  1. 如果用户首先显示您的页面。您可能只显示顶级菜单项。
  2. 如果用户选择了他/她在链接上点击的顶级菜单项之一,则会使用其他一些信息重新加载您的脚本。
  3. 现在,您的脚本需要根据附加信息确定用户选择的顶级菜单项。
  4. 根据用户的选择,您可能会显示或隐藏子菜单项。
  5. 您的工作是什么,您必须确保您的脚本检测到单击了哪个顶级菜单项。

    您需要更多帮助,还是明确该做什么?

    好的,作为动态php菜单的基本示例如何 test.php

    <?php
    
      $menu="";
    
      extract( $_GET, EXTR_PREFIX_ALL, "url" );
      if (isset($url_menu)){
        $menu=$url_menu;
        echo "you selected ".$menu."<br>";
      }     
    
    
    
      echo "<ul>";
    
      // top menu 1
      echo '<li><a href="./test.php?menu=top1">Top1</a>';
        if ($menu=="top1"){
          echo "<ul>";
            echo "<li>Submenu</li>";
          echo "</ul>";
        }
        echo "</li>";
    
      // top menu 2
      echo '<li><a href="./test.php?menu=top2">Top2</a>';
        if ($menu=="top2"){
          echo "<ul>";
            echo "<li>Submenu</li>";
          echo "</ul>";
        }
        echo "</li>";
    
      echo "</ul>";
    
    
    ?>
    

    查看任何顶部菜单项移交附加变量“menu”。在这种情况下,这是“top1”或“top2”。现在重新加载的脚本检查是否已经设置了“菜单”,并根据“菜单”的值显示相应的子菜单。

    还有很长的路要走,因为在我的情况下,我使用固定的菜单项,在这种情况下,根据“用户ID”加载菜单项。

    如果上述示例适用于您的位置,并且您需要其他支持才能将其用于动态加载的菜单,请告诉我。

    遵循这个想法你需要替换

    <li class='has-sub'><a href='#'><span><?=$get_main_menu['menu_name']; ?></span></a>
    

    通过添加例如变量名“level0”

    <li class='has-sub'><a href='<?= ?level0=$sub_menu['menu_name']; ?>'><span><? $get_main_menu['menu_name']; ?></span></a>
    

    然后您可以检查子菜单是否按照您的预期设置了“level0”,然后显示或隐藏子菜单项。