w3验证器给出了导航错误

时间:2013-12-03 16:12:47

标签: php mysql navigation

我一直在做一些研究并发现了这个不错的网站http://validator.w3.org/

运行测试后,我发现我的导航出现了错误。

我得到的错误是编码中的ul。我不关闭它,因为如果满足条件我给它造型,否则关闭它。
但根据w3,这不是一个有效的解决方案,它给了我一些错误。

你能帮我找一个导航修复程序,以便它有效吗?

感谢吉姆

<ul id="nav-container">
    <?php

    $select_category = mysql_query("SELECT * FROM menu WHERE hidden = 0 ORDER BY menu ASC");
    while ($ln = mysql_fetch_array($select_category)) {
        $idcat = $ln['nmr'];
        $catname = $ln['menu'];
        $catsname = str_replace(' ', '-', $ln['menu']);

        echo '<li>';
        if($catname == "carparts") {
            echo '<a href="http://www.mywebsite.com/carparts.php" title="'.$catname.'"><span><strong>'.$catname.'</strong></span></a>';
        } else {
            echo '<a href="http://www.mywebsite.com/'.$idcat.'/'.$catsname.'/" title="'.$catname.'"><span><strong>'.$catname.'</strong></span></a>';
        }

这给了我错误:(固定)

echo '<ul';

if(isset($_GET['cats'])) {
    if ($_GET['cats'] == $idcat) {
        echo ' style="display:block;">';
    } else {
        echo '>';
    }

修复:还删除了结尾的结束括号。

echo '<ul';

if(isset($_GET['cats']) && $_GET['cats'] == $idcat){
    echo ' style="display:block;">';
} else {
    echo '>';
}

/ fix finish

//错误完成

$select_sub = mysql_query("SELECT * FROM submenu WHERE nmrmenu = '$idcat' AND hidden = 0");
while ($lsub = mysql_fetch_array($select_sub)) {
    $subname = $lsub['submenu'];
    $subsname = str_replace(' ', '-', $lsub['submenu']);
    $pil = '&raquo;';
    $brnr = $lsub['nmr'];

    if(isset($_GET['cat'])) {
        if ($_GET['cat'] == $brnr) {
            $subname = '<u>'.$lsub['submenu'].'</u>';
        } else {
            $subname = $lsub['submenu'];
        }
    }

    echo '<li><a href="http://www.mywebsite.com/'.$lsub['nmr'].'/'.$subsname.'/"><span><strong> '.$subname.' </strong></span></a></li>';
}

echo '</ul>';
echo '</li>'; // to this location
}
  echo '</li>'; //relocated this up one line
} **//Deleted this one!** 

?>
</ul>

更新
输出变得像这样可怕:(固定)

<ul</li><li><a href="http://www.mywebsite.com/x/name/" title="name"><span><strong>name</strong></span></a>

<ul</li><li><a href="http://www.mywebsite.com/x/name/" title="name"><span><strong>name</strong></span></a><ul</li>

新:现在ul问题已经消失,但它正在抱怨李的问题。有什么线索的原因?

错误:文档类型不允许元素“li”在这里;缺少“ul”,“ol”,“menu”,“dir”start-tag

之一
<ul id="nav-container">
    <li>
        <a href="http://www.mywebsite.com/x/name/" title="name"><span><strong>name</strong></span></a>

        <ul>
            <li>
                <a href="http://www.mywebsite.com/x/name/"><span><strong> name </strong></span></a>
            </li>
        </ul>
    </li>
</ul>

/更新

1 个答案:

答案 0 :(得分:1)

您有</ul>,然后立即使用<li>关注它。您不能在列表之外添加列表项。