一个web页面怎么根据导航页面选择的不同而显示不同的内容?

一共2个页面,

一个login默认主页面, 就是用户进来后先选择自己的班级,比如有:班级1,班级2,班级3……

另一个页面就展示具体的内容,比如用户点了 班级3,那么 sql语句就是 select studentname from stuinfo where class=3

另外一个用户选的是班级1,那么就是
select studentname from stuinfo where class=1

可能有很多用户同时使用的。

我用webform做好了展示界面,做导航选择界面时发现配置文件在服务器端,里面配置了class=1,那么所有的终端用户都是显示班级1,改成几就都显示班级几。晕死了,忙了2天白忙活了。

有哪位提供个思路能实现这个功能?用什么工具做都行,或者知道webform怎么改能实现也行。

用url传递参数 url?calss=变量
后端接收这个变量做sql拼接

可以展示一下你目前的运行效果的界面图片

面包屑导航

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    首先,可以考虑使用数据库来存储班级信息和对应的内容,同时在登录时获取用户选择的班级信息,并根据该信息从数据库中获取对应的内容。

    具体实现步骤如下:

    1. 创建班级信息表和内容表,用于存储班级信息和对应的内容。班级信息表需要包含班级名称和班级编号等字段,内容表需要包含班级编号和具体内容等字段。
    CREATE TABLE `class_info` (
      `class_id` int(11) NOT NULL AUTO_INCREMENT,
      `class_name` varchar(50) NOT NULL,
      PRIMARY KEY (`class_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
    
    CREATE TABLE `class_content` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `class_id` int(11) NOT NULL,
      `content` varchar(255) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
    
    1. 在登录页面添加班级选择框,并在表单中将选择的班级信息提交到服务器端。可以使用jQuery的ajax方法异步提交表单数据。
    <select id="class_select">
        <option value="1">班级1</option>
        <option value="2">班级2</option>
        <option value="3">班级3</option>
        ...
    </select>
    
    <button id="login_btn">登录</button>
    
    <script>
        $('#login_btn').click(function() {
            var class_id = $('#class_select').val();
            $.ajax({
                url: 'login.php',
                method: 'POST',
                data: {class_id: class_id},
                success: function(res) {
                    // 登录成功,跳转到内容页
                },
                error: function(err) {
                    alert('登录失败,请重试!');
                }
            });
        });
    </script>
    
    1. 在服务器端接收并处理表单数据,将班级信息存储在Session中。
    session_start();
    
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        $class_id = isset($_POST['class_id']) ? intval($_POST['class_id']) : 0;
    
        if ($class_id > 0) {
            $_SESSION['class_id'] = $class_id;
            echo json_encode(['code' => 0, 'msg' => '登录成功']);
            exit;
        }
    }
    
    echo json_encode(['code' => 1, 'msg' => '用户名或密码错误']);
    exit;
    
    1. 在内容页面获取Session中存储的班级信息,根据班级编号从数据库中获取对应的内容并展示在页面上。
    session_start();
    
    if (!isset($_SESSION['class_id'])) {
        header('Location: login.php');
        exit;
    }
    
    $class_id = $_SESSION['class_id'];
    
    // 获取班级信息
    $class_info = [];
    $sql = 'SELECT * FROM `class_info` WHERE `class_id` = ?';
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$class_id]);
    $class_info = $stmt->fetch();
    
    // 获取班级对应的内容
    $class_content = [];
    $sql = 'SELECT * FROM `class_content` WHERE `class_id` = ?';
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$class_id]);
    $class_content = $stmt->fetchAll();
    ?>
    
    <!-- 在页面上展示班级信息和对应的内容 -->
    <h1><?php echo $class_info['class_name']; ?></h1>
    <ul>
        <?php foreach ($class_content as $content) { ?>
            <li><?php echo $content['content']; ?></li>
        <?php } ?>
    </ul>
    

    拓展:如果需要支持多个用户同时使用,可以考虑为每个用户生成一个Session ID,并将Session ID存储在数据库中,每次访问页面时根据Session ID获取对应的Session信息。这样就可以支持多个用户同时使用了。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^