Я пытаюсь внедрить скрипт 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 & Ink</a></li>
<li><a href="#">Electronics & Accesories</a></li>
<li><a href="#">Software</a></li>
<li><a href="#">Sub Navigation</a>
<ul>
В php-скрипте есть фрагмент кода для написания пунктов меню и подменю:
<?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,"&subcategorie=",$subcatid,"'>",ucfirst(strtolower($subcat)),"</a></li>";
}
?>
Может ли кто-нибудь помочь мне с этим? Причина, когда нет подэлемента, он также записывает конец </li>
, и если есть подэлемент, он не записывает <ul>
после него, поэтому разметка портится.
РЕДАКТИРОВАТЬ: Это PHP-функции:
//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;
}
Спасибо за ответ, хотя, если пункт меню содержит пункты подменю, он не закрывается с </li>
, а начинается непосредственно с <ul>