Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP代码片段破坏HTML标记_Php_Xhtml - Fatal编程技术网

PHP代码片段破坏HTML标记

PHP代码片段破坏HTML标记,php,xhtml,Php,Xhtml,我正在尝试将php脚本实现到xhtml模板中。但是,模板的标记与脚本处理模板时略有不同 在模板中,我有菜单项和子菜单项。静态导航菜单中的示例代码如下所示: <li><a href="#">Men TEES</a></li> <-- is a menu item (note the end </li>) <li><a href="#">WO Tees</a> <-- menu item

我正在尝试将php脚本实现到xhtml模板中。但是,模板的标记与脚本处理模板时略有不同

在模板中,我有菜单项和子菜单项。静态导航菜单中的示例代码如下所示:

<li><a href="#">Men TEES</a></li> <-- is a menu item (note the end </li>)

<li><a href="#">WO Tees</a>  <-- menu item with submenu items
    <ul>
        <li><a href="#">Desktop PCs</a></li>
        <li><a href="#">Laptop PCs</a></li>
        <li><a href="#">TVs</a></li>
        <li><a href="#">Printers &amp; Ink</a></li>
        <li><a href="#">Electronics &amp; Accesories</a></li>
        <li><a href="#">Software</a></li>
        <li><a href="#">Sub Navigation</a>
    <ul>

感谢您的回答,如果一个菜单项包含子菜单项,它不会以
关闭,而是直接以
开始。您希望在categories循环中获得子类别,那么
  • 可以在正确的位置打开/关闭

    e、 g

    
    
    您能给出一个输入数组的示例吗?谢谢。谢谢你的回答,如果一个菜单项包含子菜单项,它不会以
  • 关闭,而是直接以
    @user1171942开始。我已经更新了我的答案,所以如果子列表中确实有项目,它只输出子列表。
    <?php
    
    
            //Get all categories            
        foreach(getCategories($_SESSION['shop']) as $catid=>$cat)
    
            {
                echo "<li><a href='?categorie=",$catid,"'>",ucfirst(strtolower($cat)),"</a></li>";
            }
    
            //Get all subcategories in categorie
        foreach(getSubCategories($catid,$_SESSION['shop']) as $subcatid=>$subcat)
    
            {
                echo "<ul><li><a href='?categorie=",$catid,"&amp;subcategorie=",$subcatid,"'>",ucfirst(strtolower($subcat)),"</a></li>";
            }
    
    ?>
    
    //Functions to get an array with categories
    function getCategories($shopid='')
    {
        $output=array();
        if($shopid!='')
        {
            //Get categories for this shop
            $SQL_get_categorie="SELECT * FROM m4n_category WHERE id IN (SELECT catid FROM m4n_shops_cats WHERE shopid='".$shopid."') order by name";
            $SQL_get_categorie_res=mysql_query($SQL_get_categorie);
            while($SQL_get_categorie_data=mysql_fetch_array($SQL_get_categorie_res))
            {
                $id=$SQL_get_categorie_data['id'];
                $output[$id]=$SQL_get_categorie_data['name'];
            }
        }
        else
        {
            //Get all categories
            $SQL_get_categorie="SELECT * FROM m4n_category order by name";
            $SQL_get_categorie_res=mysql_query($SQL_get_categorie);
            while($SQL_get_categorie_data=mysql_fetch_array($SQL_get_categorie_res))
            {
                $id=$SQL_get_categorie_data['id'];
                $output[$id]=$SQL_get_categorie_data['name'];
            }
        }
    
        return $output;
    }
    
    //Functions to get an array with subcategories in a category
    function getSubCategories($catid='',$shopid='')
    {
        $output=array();
        if($shopid!='')
        {
            //Get subcategories for this shop
            $SQL_get_categorie="SELECT * FROM m4n_subcategory WHERE category_id='".$catid."' AND id IN (SELECT subcatid FROM m4n_shops_cats WHERE shopid='".$shopid."')order by name";
            $SQL_get_categorie_res=mysql_query($SQL_get_categorie);
            while($SQL_get_categorie_data=mysql_fetch_array($SQL_get_categorie_res))
            {
                $id=$SQL_get_categorie_data['id'];
                $output[$id]=$SQL_get_categorie_data['name'];
            }
        }
        else
        {
            //Get all subcategories
            $SQL_get_categorie="SELECT * FROM m4n_subcategory WHERE category_id='".$catid."' order by name";
            $SQL_get_categorie_res=mysql_query($SQL_get_categorie);
            while($SQL_get_categorie_data=mysql_fetch_array($SQL_get_categorie_res))
            {
                $id=$SQL_get_categorie_data['id'];
                $output[$id]=$SQL_get_categorie_data['name'];
            }
        }
        return $output;
    }
    
    <?php
        // Get all categories            
        foreach(getCategories($_SESSION['shop']) as $catid => $cat)
        {
            // Notice no </li> at end!
            echo "<li><a href='?categorie=",$catid,"'>",ucfirst(strtolower($cat)),"</a>";
    
            // Get all subcategories in category
            $subcats = getSubCategories($catid, $_SESSION['shop']);
    
            // If there are some sub categories, then start a sub-list.
            if (count($subcats) > 0) 
            { 
                echo "<ul>";
                foreach($subcats as $subcatid => $subcat)
                {
                    echo "<li><a href='?categorie=",$catid,"&amp;subcategorie=",$subcatid,"'>",ucfirst(strtolower($subcat)),"</a></li>";
                }  
                echo "</ul">;
            }
    
            // Now you can close the <li> as the sublist is done.   
            echo "</li>";
        }
    ?>