php - 根据 php session 属性更改 HTML 菜单栏?

标签 php html mysql if-statement

因此,我有一个 MySQL 数据库,其中将用户列为经理或员工。我想根据属性更改他们看到的菜单栏。我确实在 php 中完成了所有这些工作,但是在进行重新设计时,我考虑过将其放入 html 文件中,但我不太清楚这应该如何工作。

这是我用来在文件 menubar2.php 中执行操作的 php 代码:

<?php
$email = $_SESSION['logname'];
$results = "SELECT email FROM manager_list WHERE email = '$email'";
$results = mysqli_query($cxn, $results) or die("Query died: query");
$numrows = mysqli_num_rows($results);

if ($numrows == 0)
{
    echo"<div id='menu'>";
    echo"<ul>";
    echo"<li><a href='index2.php'>Quick Review</a></li>";
    echo"<li><a href='myPerformance.php'>My Peformance</a></li>";
    echo"<li><a href='myGoals.php'>My Goals</a></li>";
    echo"<li><a href='sHelp.php'>Help</a></li>";
    echo"</ul>";
    echo"</div>";
}

if ($numrows > 0)
{
    echo"<div id='menu'>";
    echo"<ul>";
    echo"<li><a href='index2.php'>Quick Review</a></li>";
    echo"<li><a href='myPerformance.php'>My Peformance</a></li>";
    echo"<li><a href='myGoals.php'>My Goals</a></li>";
    echo"<li><a href='toolsManager.php'>Manager Tools</a></li>";
    echo"<li><a href='sHelp.php'>Help</a></li>";
    echo"</ul>";
    echo"</div>";
}
?>

这是我使用它的地方 (index.html)

<?php
include('sessionauth.php');
?>
<!DOCTYPE html>
<html>
<head>

<title>TinyEval</title>
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
<div id="wrapper">
<?php 
include('header2.php');
include('menubar2.php'); 
?>
    <!-- begin #page -->
    <div id="page">
        <div id="content">
            <div class="post">
                <h2 class="title">Frequently Asked Questions</h2>
                <div class="entry">

                    <p>How do I fix my headers?</p>

                </div>
            </div>
        </div>
    </div>
    <div style="clear: both;">&nbsp;</div>
    <!-- end #page -->
</div>
<?php include('footer2.php'); ?>
</body>
</html>

有没有一种方法可以在没有 menubar2.php 的 include 的情况下做到这一点 - 也就是说,将它全部放在 html 文件本身中,但不必使用所有的 echo 语句?

对于这个新问题,我深表歉意,但我正在努力弄清楚 html 和 php/MySQL 是如何结合在一起的。 谢谢!

最佳答案

只要将索引文件命名为 index.php,这种方法就很可靠。 PHP 最初是一种 HTML 模板语言,像这样使用它并包含页面的某些部分是完全正确的。您可以将该代码直接放入 index.php,但使用 include 可使您的代码更易于重用。此外,当返回多于 0 行时,这里有一种更简单、更 DRY 的方法来更改菜单:

$numrows = mysqli_num_rows($results);

//these lines get echoed in both cases
echo "<div id='menu'>";
echo "<ul>";
echo "<li><a href='index2.php'>Quick Review</a></li>";
echo "<li><a href='myPerformance.php'>My Peformance</a></li>";
echo "<li><a href='myGoals.php'>My Goals</a></li>";
if ($numrows > 0) {
    echo "<li><a href='toolsManager.php'>Manager Tools</a></li>";
}
echo "<li><a href='sHelp.php'>Help</a></li>";
echo "</ul>";
echo "</div>";

进一步扩展 PHP - 它是一种服务器端语言,这意味着它不像 Javascript 那样在用户的浏览器中运行。当浏览器请求以 PHP 结尾的页面时,服务器会运行脚本,打印出结果(通常为 HTML)并仅向浏览器提供呈现的输出。在这种情况下,即使您的主 index.php 和 include 中都有 php 脚本,浏览器中显示的只是脚本的输出。

关于php - 根据 php session 属性更改 HTML 菜单栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36734606/

相关文章:

javascript - Laravel 5.0 : Calculation using LaravelCollective and jQuery

php - AES加密 Android/AES解密 PHP

javascript - 如何制作类似 Pottermore 的动画光标

jquery - 使用 Jquery 选中/取消选中父/子复选框

java - mysql准备语句时间戳中的错误?

MySql 外键,它是如何工作的

php - 如何打印mysql报告并导出到excel

javascript - 将重复的 div 与 div 中的一些不同内容绑定(bind)

mysql - SQL:根据条件加入和计数

php - Docker安装cURL失败(需要7.10.5以上版本)