如果满足条件,则回显ul

时间:2018-03-12 20:00:49

标签: php html

我正在制作一个测验系统,如果用户是管理员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>';
} ?>

1 个答案:

答案 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>

这使得管理员无序列表内部成为第一个列表项。