我正在制作一个测验系统,如果用户是管理员Add questions
应该出现。但是我似乎无法让<ul><li><a href="admin.php">Add questions</a></li></ul>
作为下拉菜单回显。
<?php
$admin = 1;
?>
<li><a href="quizOptions.php">Quiz</a></li>
<?php if($admin == 1){ //adds admin feature.
echo'<ul><li><a href="admin.php">Add questions</a></li></ul>';
} ?>
答案 0 :(得分:4)
您无法在<ul>
<ul>
让我们暂时删除PHP ......
<li><a href="quizOptions.php">Quiz</a></li>
<ul><li><a href="admin.php">Add questions</a></li></ul>
所以你有一个开放和关闭的<li>
,然后是一个开放和关闭的<ul>
。我们假设您在第一个<ul>
代码之前有一个开始<li>
标记。因此,您创建的条件等于
<ul>
<li></li>
<ul><li></li></ul>
</ul>
这是不正确的。
您需要删除admin php中的<ul>
标记...
<?php
$admin = 1;
?>
<li><a href="quizOptions.php">Quiz</a></li>
<?php if($admin == 1){ //adds admin feature.
echo'<li><a href="admin.php">Add questions</a></li>';
} ?>
或添加<li>
代码....
<?php
$admin = 1;
?>
<li><a href="quizOptions.php">Quiz</a></li>
<?php if($admin == 1){ //adds admin feature.
echo'<li><ul><li><a href="admin.php">Add questions</a></li></ul></li>';
} ?>
这样您的HTML列表格式正确。
见这里:correct semantics for ul in ul
此问题完全基于HTML,并不是由于代码中存在任何php问题。
如果目标是基于CSS的下拉列表菜单项,您可能只需要移动第一个结束</li>
:
<?php
$admin = 1;
?>
<li><a href="quizOptions.php">Quiz</a>
<?php if($admin == 1){ //adds admin feature.
echo'<ul><li><a href="admin.php">Add questions</a></li></ul>';
} ?>
</li>
这使得管理员无序列表在内部成为第一个列表项。