Menu_table table[30]={ {0,0,1,0,(*home)}, //一级界面(主页面) 索引,向下一个,确定,退出 {1,2,5,0,(*Temperature)}, //二级界面 温湿度 {2,3,6,0,(*Palygame)}, //二级界面 游戏 {3,4,7,0,(*Setting)}, //二级界面 设置 {4,1,8,0,(*Info)}, //二级界面 信息 {5,5,5,1,(*TestTemperature)}, //三级界面:DHT11测量温湿度 {6,6,6,2,(*ControlGame)}, //三级界面:谷歌小恐龙Dinogame {7,7,9,3,(*Set)}, //三级界面:设置普通外设状态 LED {8,8,8,4,(*Information)}, //三级界面:作者和相关项目信息 {9,9,7,3,(*LED)}, //LED控制
时间: 2025-05-15 08:08:52 浏览: 15
### 解析嵌入式C语言中的多级菜单结构
在嵌入式系统中,通过数组定义和函数指针可以有效地管理复杂的多级菜单。为了实现这一目标,通常会创建一个包含菜单项及其对应处理函数的数据结构。
#### 定义菜单数据结构
菜单项可以通过结构体来表示,其中不仅包含了显示给用户的字符串描述,还关联了一个指向执行特定操作的函数:
```c
typedef struct {
const char *name;
void (*callback)(void);
} MenuItem;
```
此结构允许每个菜单条目拥有自己的名称以及当被选中时调用的方法[^1]。
对于具有子菜单的情况,则可以在上述基础上进一步扩展,在`MenuItem`结构体内增加一个新的成员变量用来存储下一层级的菜单列表地址或者长度等信息,从而形成树状链接关系。
#### 使用数组构建具体实例
实际应用中往往采用静态初始化的方式预先设定好各级别的选项内容并将其组织成二维甚至更高维度的形式以便于遍历访问:
```c
// 主菜单项目
static MenuItem main_menu_items[] = {
{"Option A", option_a_handler},
{"Submenu B", submenu_b_entry}
};
// 子菜单B下的项目
static MenuItem submenu_b_items[] = {
{"Item 1", item_1_handler},
{"Item 2", item_2_handler}
};
```
这里展示了如何利用一维或多维数组来安排不同级别的菜单入口,并且为每一个可交互的对象分配相应的响应逻辑。
#### 函数指针的作用
函数指针在此处扮演着至关重要的角色——它使得程序能够动态地决定要运行哪一部分代码而无需硬编码具体的流程路径;每当用户做出选择之后,只需简单地触发对应的回调即可完成预期的功能切换或参数传递过程。
例如,在接收到按键输入后判断当前处于哪个位置上的节点,进而依据其内部保存的操作句柄来进行下一步动作:
```c
if (selected_item->callback != NULL) {
selected_item->callback();
}
```
这种设计模式极大地提高了系统的灵活性与维护效率,同时也简化了界面开发的工作量。
阅读全文
相关推荐












下面这段是PHP5.6,如何改成PHP8.4?
<?php
require_once("include/global.php");
?>
<html>
<head>
<?php echo getMeta('gb') ?>
<title><?php echo $_GLOBAL_CONF['SITE_NAME'] ?></title>
</head>
<style>
a {color:#616651}
.img1 {border:solid 0 black}
</style>
<BODY link=#cc0000 leftMargin=0 topMargin=0 marginwidth="0" marginheight="0">
<?php
require_once("include/header.php");
?>
<?php /*
<iframe width="300" height="200" style="border: solid 1px black; width: 600px; height: 30px;" frameborder="0"></iframe>
<script type=text/javascript>
var step_ratio = 0.1;
objs = new Array();
objs_x = new Array();
objs_y = new Array();
function addfollowmark(name, x, y) {
i = objs.length;
objs[i] = document.getElementById(name);
objs_x[i] = x;
objs_y[i] = y;
}
function followmark() {
for(var i=0; i<objs.length; i++) {
var fm = objs[i];
var fm_x = typeof(objs_x[i]) == 'string' ? eval(objs_x[i]) : objs_x[i];
var fm_y = typeof(objs_y[i]) == 'string' ? eval(objs_y[i]) : objs_y[i];
if (fm.offsetLeft != document.body.scrollLeft + fm_x) {
var dx = (document.body.scrollLeft + fm_x - fm.offsetLeft) * step_ratio;
dx = (dx > 0 ? 1 : -1) * Math.ceil(Math.abs(dx));
fm.style.left = fm.offsetLeft + dx;
}
if (fm.offsetTop != document.body.scrollTop + fm_y) {
var dy = (document.body.scrollTop + fm_y - fm.offsetTop) * step_ratio;
dy = (dy > 0 ? 1 : -1) * Math.ceil(Math.abs(dy));
fm.style.top = fm.offsetTop + dy;
}
fm.style.display = '';
}
}
addfollowmark("ad_dl01", "document.body.clientWidth-305", 115);
setInterval('followmark()',20);
</script>
*/ ?>
![]()
<?php
if($_SESSION['ss_admin']>0) echo "
<form name=loginform method=post action=/login.php>
<input type=hidden name=username value='$ss_name'>
<input type=hidden name=password value='$ss_password'>
";
?>
![]()
首页 Home
![]()
产品 Products
|
新产品 New Products
|
<?php /* Order
|
Guestbook
| */ ?>
联系我们 Contact us
|
注册 Register
<?php if($_SESSION['ss_admin']>0){ ?>
|
Admin <input type=submit value=ReLogin style=cursor:hand>
<?php } ?>
<?php
if($_SESSION['ss_userid']>0){
?>
|
Bills
|
退出 Logout
<?php
}else{
?>
|
登录 Login
<?php
}
?>
<?php
if($_SESSION['ss_admin']>0) echo "
</form>
";
?>
![]()
<form name=searchform action=search.php method=post>
![]()
<select name=key>
<option value=model_no <? if($key == "model_no") echo "selected"; ?>>型号 Model No.</option>
<option value=name <? if($key == "name") echo "selected"; ?>>名称 Name</option>
<option value=features <? if($key == "features") echo "selected"; ?>>规格 Features</option>
<option value=description <? if($key == "description") echo "selected"; ?>>说明 Descriptions</option>
<option value=fob_port <? if($key == "fob_port") echo "selected"; ?>>港口 Fob Port</option>
<option value=color <? if($key == "color") echo "selected"; ?>>颜色 Color</option>
<option value=matial <? if($key == "matial") echo "selected"; ?>>材料 Matial</option>
</select>
关键词 Keyword:<input type=text size=5 name=value value="<?php echo $value?>">
产品号 ProductID:<input type=text size=5 name=productid value="<?php echo $productid?>">
<input type=hidden name=typeid value="<?php echo $typeid?>">
<input type=submit name=sub6 value="查找 Search">
![]()
</form>
<?php include "include/html/notice1.html";?>
联系我们 Contact Us | 更多 More
<?php /*
![]()
![Molding Case]()
![Assembled Case]()
![Instrument Box]()
![Aluminum Box]()
![Premium Bag]()
![Casual Bags]()
![Solid Wood Item]()
![Gift Item]()
*/?>
<form method=POST action=n2e.php target=frame1>
数字 Num<input type=text SIZE=16 name=id><INPUT TYPE=submit VALUE="英语 EN" NAME=s>
<IFRAME name=frame1 frameBorder=1 width=780 scrolling=no height=26></IFRAME> </form>
<form method=POST action=n2c.php target=frame2>
数字 Num<input type=text SIZE=16 name=id><INPUT TYPE=submit VALUE="中文 CN" NAME=s>
<IFRAME name=frame2 frameBorder=1 width=780 scrolling=no height=26></IFRAME> </form>
<?php
require_once("include/foot.php");
?>
</body>
</html>
*/?>



look54.php:
<?php
session_start();
require "../db54.php";
if(!isset($_SESSION["username"])) {
header("Location: ../login54.php");
exit;
}
$user = $_SESSION["username"];
?>
<!DOCTYPE html>
<html>
<head>
<title>我的购物车</title>
<style>
table { width: 100%; border-collapse: collapse; }
th, td { padding: 8px; text-align: left; border-bottom: 1px solid #ddd; }
img { max-width: 100px; }
</style>
<script>
function openme(row) {
row.style.backgroundColor = "#FFFFCC";
}
function closeme(row) {
row.style.backgroundColor = (row.rowIndex % 2 == 1 ? "#F0F0F0" : "");
}
function op(button, id) {
// Implement quantity increase/decrease logic
}
function select_all() {
// Implement select all checkboxes
}
function reset_all() {
// Implement reset all checkboxes
}
function delete_all() {
// Implement delete selected items
}
function na() {
return confirm("确定要移除该商品吗?");
}
function op(t,id) {
value=t.value; //按钮上显示的文字
if(value=='+') { //带参数跳转,兼容Google.ie
parent.top.window.location="look54.php?op=add&id="+id;
}
if(value=='-') {
parent.top.window.location="look54.php?op=sub&id="+id;
}
}
</script>
</head>
<body>
我的购物车
<?php
// 显示当前用户信息 - 统一使用username
if(isset($_SESSION['username'])) {
echo "查看购物车 | 当前用户:" . htmlspecialchars($user) . "";
?>
<form name="cartForm" method="post">
选择
商品名称
商品图片
订阅数量
单价
操作
<?php
// 处理"拿掉该商品"超链接删除
if(isset($_GET['id']) && $_GET["op"]=="移除") {
$id = $_GET['id'];
$sql = "DELETE FROM dingdan54 WHERE id = $id";
if($db54->write($sql)) {
echo "<script>alert('拿掉商品成功!')</script>";
} else {
echo "<script>alert('拿掉商品失败!')</script>";
echo "<script>location.href('look54.php')</script>";
}
}
// 处理增减按钮+-操作
if(isset($_GET["op"])) {
$op = $_GET["op"];
$id = $_GET['id'];
// 获取当前数量
$sql = "SELECT * FROM dingdan54 WHERE id = $id";
$result = $db54->read($sql);
if(count($result) > 0) {
$current_num = $result[0]['num'];
if($op == "add") {
$new_num = $current_num + 1;
} elseif($op == "sub" && $current_num > 1) {
$new_num = $current_num - 1;
} else {
$new_num = $current_num;
}
// 更新数量
$update_sql = "UPDATE dingdan54 SET num = $new_num WHERE id = $id";
$db54->write($update_sql);
}
}
// 处理"拿掉选中商品"按钮
if(isset($_GET["str"])) {
$ids = explode("|", trim($_GET["str"], "|"));
foreach($ids as $id) {
if(is_numeric($id)) {
$sql = "DELETE FROM dingdan54 WHERE id = $id";
$db54->write($sql);
}
}
echo "<script>alert('拿掉商品成功!')</script>";
echo "<script>location.href('look54.php')</script>";
}
// 显示购物车
$cart_sql = "SELECT dingdan54.id AS id, sp54.name AS name, sp54.photo AS photo, SUM(dingdan54.num)
AS total_num, sp54.money AS money FROM sp54
JOIN dingdan54 ON sp54.id = dingdan54.sp_id
WHERE sp54.id = dingdan54.sp_id AND dingdan54.user = '$user' AND dingdan54.flag = 0
GROUP BY sp54.id, sp54.name, sp54.photo, sp54.money";
$cart_result = $db54->read($cart_sql);
$n = count($cart_result);
if ($n == 0) {
echo "购物车是空的! ";
}else{
for ($i = 0; $i < $n; $i++) {
$item = $cart_result[$i];
echo "";
echo "<input type='checkbox' name='flag' value='{$item['id']}'> ";
echo "{$item['name']} ";
echo "![]()
";
echo "<input type='button' name='enter' value='-' onclick='op(this, {$item['id']})'>
<input type='text' name='num{$item['id']}' readonly size='3'
style='text-align:center' value='{$item['total_num']}'>
<input type='button' name='enter' value='+' onclick='op(this, {$item['id']})'> ";
echo "{$item['money']}元 ";
echo "
移除该商品 ";
echo " ";
}
}
?>
<input type="button" name="enter" value="全选" onclick="select_all()">
<input type="button" name="enter" value="全部取消" onclick="reset_all()">
<input type="button" name="enter" value="删除选中商品" onclick="delete_all()">
<?php
$total_sql = "SELECT sp54.money AS money, dingdan54.num AS num
FROM sp54, dingdan54
WHERE sp54.id = dingdan54.sp_id AND dingdan54.user = '$user'
AND dingdan54.flag = 0";
$total_result = $db54->read($total_sql);
$sum = 0;
foreach ($total_result as $item) {
$sum += $item["money"] * $item["num"];
}
echo "应付金额:¥";
echo $sum . " 元";
echo " | 去付款";
?>
</form>
继续购物
<?php } ?>
</body>
</html>
l54.php:
<?php
include('../db54.php');
session_start();
$user_id=$_SESSION["id"]?? 0;
$sql="select * from user54 where id='$user_id'";
$result=$db54->read($sql);
$username=$result[0]["username"];
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>信安28班54何雨霏PHP实训</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="all,follow">
</head>
<body>
Nathan AndrewsWeb Developer
BD
Main
何雨霏的留言板
实训页面1
实训页面2
实训页面3
Example dropdown
admin
查看购物车
后台管理
Login page
Demo
6 New
Second menu
admin
查看购物车
后台管理
<?php
?>
信安28班54何雨霏PHP实训 <?php echo $username; ?>
12
You have 6 new messages
4 minutes ago
You have 2 followers
4 minutes ago
Server Rebooted
4 minutes ago
You have 2 followers
10 minutes ago
view all notifications
10
Jason Doesent you a direct message3 days ago at 7:58 pm - 10.06.2019
Frank Williamssent you a direct message3 days ago at 7:58 pm - 10.06.2019
Ashley Woodsent you a direct message3 days ago at 7:58 pm - 10.06.2019
Read all messages
English
German
French
Logout
<?php require "daohang54.php"; ?>
<?php require "look54.php"; ?>
<script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script>
<script src="vendor/popper.js/umd/popper.min.js"> </script>
<script src="https://www.jq22.com/jquery/bootstrap-4.2.1.js"></script>
<script src="js/grasp_mobile_progress_circle-1.0.0.min.js"></script>
<script src="vendor/jquery.cookie/jquery.cookie.js"> </script>
<script src="vendor/chart.js/Chart.min.js"></script>
<script src="vendor/jquery-validation/jquery.validate.min.js"></script>
<script src="vendor/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.concat.min.js"></script>
<script src="js/charts-home.js"></script>
<script src="js/front.js"></script>
</body>
</html>
页面能显示look54的内容,不能显示l54的框架

<?php
/*
Plugin Name: 多功能 WordPress 插件
Plugin URI: https://yourwebsite.com/plugins/multifunctional
Description: 包含置顶、网页宠物、哀悼模式、禁止复制、弹幕等 20+ 功能的综合插件
Version: 1.0.0
Author: Your Name
Author URI: https://yourwebsite.com
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: multifunctional-plugin
Domain Path: /languages
*/
// 防止直接访问
if (!defined('ABSPATH')) {
exit;
}
// 定义插件常量
define('MULTI_PLUGIN_DIR', plugin_dir_path(__FILE__));
define('MULTI_PLUGIN_URL', plugin_dir_url(__FILE__));
define('MULTI_PLUGIN_VERSION', '1.0.0');
// 全局设置存储键
$multi_plugin_options = array(
'mourning_date',
'background_image',
'announcement',
'marquee_content',
'watermark_text'
);
// ------------------------------
// 1. 置顶功能
// ------------------------------
function multi_post_sticky_meta_box() {
add_meta_box(
'post_sticky',
'文章置顶',
'multi_post_sticky_callback',
'post',
'side',
'default'
);
}
add_action('add_meta_boxes', 'multi_post_sticky_meta_box');
function multi_post_sticky_callback($post) {
$sticky = get_post_meta($post->ID, '_post_sticky', true);
wp_nonce_field('post_sticky_nonce', 'post_sticky_nonce');
echo '<label><input type="checkbox" name="post_sticky" value="1" ' . checked(1, $sticky, false) . '> 置顶此文章</label>';
}
function multi_post_sticky_save($post_id) {
if (!isset($_POST['post_sticky_nonce']) || !wp_verify_nonce($_POST['post_sticky_nonce'], 'post_sticky_nonce')) {
return;
}
if (isset($_POST['post_sticky'])) {
update_post_meta($post_id, '_post_sticky', 1);
} else {
delete_post_meta($post_id, '_post_sticky');
}
}
add_action('save_post', 'multi_post_sticky_save');
// ------------------------------
// 2. 网页宠物
// ------------------------------
function multi_web_pet() {
echo '';
echo '
';
echo '';
}
add_action('wp_footer', 'multi_web_pet');
// ------------------------------
// 3. 哀悼模式
// ------------------------------
function multi_mourning_mode() {
$mourning_date = get_option('multi_mourning_date', '2025-04-29'); // 默认日期
if (date('Y-m-d') === $mourning_date) {
echo '<style>html { filter: grayscale(100%); }</style>';
}
}
add_action('wp_head', 'multi_mourning_mode');
// ------------------------------
// 4. 禁止复制 & 查看源码
// ------------------------------
function multi_disable_copy_source() {
// 禁止复制样式
echo '<style>body { user-select: none; -moz-user-select: none; -webkit-user-select: none; }</style>';
// 禁止查看源码脚本
echo '<script>document.addEventListener("keydown", function(e) {
if ((e.ctrlKey && e.key === "u") || e.key === "F12" || e.keyCode === 123) {
e.preventDefault();
}
});</script>';
}
add_action('wp_head', 'multi_disable_copy_source');
// ------------------------------
// 5. 弹幕功能
// ------------------------------
function multi_danmaku() {
echo '';
echo '<script src="' . MULTI_PLUGIN_URL . 'assets/danmaku.js"></script>'; // 需自行添加弹幕逻辑脚本
}
add_action('wp_footer', 'multi_danmaku');
// ------------------------------
// 6. WP 优化
// ------------------------------
function multi_wp_optimization() {
// 移除冗余功能
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'feed_links', 2);
remove_action('wp_print_styles', 'print_emoji_styles');
}
add_action('init', 'multi_wp_optimization');
// ------------------------------
// 7. 媒体分类
// ------------------------------
function multi_media_category() {
register_taxonomy(
'media_category',
'attachment',
array(
'label' => __('媒体分类', 'multifunctional-plugin'),
'hierarchical' => true,
'show_ui' => true,
'query_var' => true
)
);
}
add_action('init', 'multi_media_category');
// ------------------------------
// 8. 预加载首页
// ------------------------------
function multi_preload_homepage() {
echo '';
}
add_action('wp_head', 'multi_preload_homepage');
// ------------------------------
// 9. 在线客服 & 手机客服
// ------------------------------
function multi_support_buttons() {
// 通用客服按钮
echo '';
echo '在线客服';
echo '';
// 手机端专属客服按钮
echo '';
echo '手机客服';
echo '';
}
add_action('wp_footer', 'multi_support_buttons');
// ------------------------------
// 10. 网站背景 & 公告
// ------------------------------
function multi_background_announcement() {
// 背景图片
$bg_image = get_option('multi_background_image', MULTI_PLUGIN_URL . 'assets/bg.jpg');
echo '<style>body { background-image: url("' . esc_url($bg_image) . '"); }</style>';
// 公告栏
$announcement = get_option('multi_announcement', '欢迎访问我们的网站!');
echo '' . esc_html($announcement) . '';
}
add_action('wp_head', 'multi_background_announcement');
// ------------------------------
// 11. 水印功能
// ------------------------------
function multi_watermark() {
$watermark = get_option('multi_watermark_text', '版权所有 © 你的网站');
echo '<style>
body::after {
content: "' . esc_attr($watermark) . '";
position: fixed;
top: 50%;
left: 50%;
transform: rotate(-45deg) translate(-50%, -50%);
opacity: 0.1;
font-size: 80px;
color: #000;
pointer-events: none;
}
</style>';
}
add_action('wp_head', 'multi_watermark');
// ------------------------------
// 12. 后台设置页面
// ------------------------------
function multi_plugin_settings_page() {
add_options_page(
'多功能插件设置',
'多功能插件',
'manage_options',
'multi-plugin-settings',
'multi_settings_html'
);
}
add_action('admin_menu', 'multi_plugin_settings_page');
function multi_settings_html() {
if (!current_user_can('manage_options')) {
wp_die(__('你没有权限访问此页面。'));
}
if (isset($_POST['multi_plugin_save'])) {
foreach ($multi_plugin_options as $option) {
update_option('multi_' . $option, sanitize_text_field($_POST[$option]));
}
echo '设置已保存!';
}
$options = array();
foreach ($multi_plugin_options as $option) {
$options[$option] = get_option('multi_' . $option, '');
}
?>
多功能插件设置
<form method="post">
哀悼日期 (YYYY-MM-DD)
<input type="text" name="mourning_date" value="<?php echo esc_attr($options['mourning_date']); ?>">
背景图片 URL
<input type="url" name="background_image" value="<?php echo esc_attr($options['background_image']); ?>">
公告内容
<input type="text" name="announcement" value="<?php echo esc_attr($options['announcement']); ?>">
跑马灯内容
<input type="text" name="marquee_content" value="<?php echo esc_attr($options['marquee_content']); ?>">
水印文本
<input type="text" name="watermark_text" value="<?php echo esc_attr($options['watermark_text']); ?>">
<input type="submit" name="multi_plugin_save" class="button button-primary" value="保存设置">
</form>
<?php
}
// ------------------------------
// 插件激活时创建默认设置
// ------------------------------
function multi_plugin_activate() {
foreach ($multi_plugin_options as $option) {
$default = ($option === 'mourning_date') ? '2025-04-29' : '';
add_option('multi_' . $option, $default);
}
}
register_activation_hook(__FILE__, 'multi_plugin_activate');
// ------------------------------
// 资源路径说明(需手动创建目录)
// ------------------------------
/*
请在插件目录下创建以下文件夹和文件:
- assets/
- pet.png (网页宠物图片)
- bg.jpg (默认背景图片)
- danmaku.js (弹幕逻辑脚本)
- style.css (自定义样式)
*/

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>
.bg-f4f6f7 {
background-color: #f4f6f7;
}
</style>
</head>
<body>
Æon
管理员
首页
用户管理
封禁/解除用户
用户列表
用户行为记录
歌手管理
封禁/解封歌手
歌手歌曲
歌曲内容管理
歌曲收藏
评论管理
歌曲信息
歌单管理
社区管理
帖子审核
帖子发布
举报处理
数据分析
播放量分析
用户分析
管理员管理
系统管理
<template id="homeTpl" class="">
首页
用户数量
新增用户数{{usernum}}
总用户数{{totalusernum}}
歌手数量
总歌手数{{singernum}}
代办事项
无
快捷入口
用户
用户
用户
用户
用户
用户
用户
用户
访问统计
</template>
<template id="usersTpl">
首页->用户
用户名:
<input placeholder="查询内容" class="pt-2 pb-2 rounded" />
查询
新增
删除
选择
索引
用户名
头像
性别
账号
操作
</template>
<template id="singerTpl">
首页->歌手
歌手/歌曲:
<input placeholder="查询内容" class="pt-2 pb-2 rounded" />
查询
新增
删除
<input type="checkbox" id="selectAll" class="checkbox">
索引
歌手
照片
性别
歌曲
操作
加载中...
</template>
<template id="gedanTpl">
首页->歌单
歌单:
<input placeholder="查询内容" class="pt-2 pb-2 rounded" />
查询
新增
删除
索引
歌曲名称
海报
歌曲分类
歌手
视频
操作
加载中...
</template>
<template id="shequTpl">
首页->社区
歌单:
<input placeholder="查询内容" class="pt-2 pb-2 rounded" />
查询
新增
删除
<input type="checkbox" id="selectAll">
编号
帖子标题
发布人
发布时间
更新时间
审核时间
状态
操作
加载中...
</template>
<template id="shujuTpl">
播放量
平台总播放量分析
歌手播放量
当前趋势分析
</template>
<template id="guanliTpl">
管理员管理
管理员
</template>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
<script src="js/cebianlan.js"></script>
</body>
</html>在js中新增20条用户数据,能够进行增删设置,搜索设置

我发你一个导航页代码,你协调好它们之间的关系,并且用easyui美化它们。
导航页ProNv:“<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>商品基本信息管理系统</title>
</head>
<frameset rows="15%,*" cols="*" frameborder="yes" border="5" framespacing="0">
<frame src="<%=request.getContextPath()%>/prohome/top.jsp" name="topFrame" scrolling="NO" noresize >
<frameset cols="25%,*" frameborder="yes" border="5" framespacing="0">
<frame src="<%=request.getContextPath()%>/prohome/left.jsp" name="leftFrame" scrolling="YES" noresize>
<frame src="<%=request.getContextPath()%>/prohome/welcome.jsp" name="mainFrame">
</frameset>
</frameset>
<noframes>
<body>您的浏览器无法处理框架!</body>
</noframes>
</html>
”
左页面:“<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="javax.servlet.http.HttpServletRequest"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
商品基本信息列表
商品列表查询
查询商品基本信息
多条件查询学生基本信息
添加商品基本信息
修改或删除商品基本信息
库存信息列表
多条件查询库存信息
库存列表查询
添加入库信息
修改或删除入库信息
添加出库信息
修改或删除出库信息
员工重置密码
<%
String operator_id = (String) request.getSession().getAttribute("user");
//下一句不能用==
if ("U202340848".equals(operator_id)) {
%>
管理员添加员工信息
管理员查看员工列表
管理员重置员工密码和删除员工信息
管理员通过列表查询员工信息
管理员精准查询员工信息
<%
}
if ("".equals(operator_id))
{ System.out.println("无session");//测试用
%>
<%} %>
</body>
</html>
”
主页面:“<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>商品基本信息管理</title>
</head>
<body style="background: url(../image/welcome.jpg); background-size:40% 100%; background-attachment: fixed; background-repeat:no-repeat; background-position:center center">
</body>
</html>
”
顶端页面:“<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>商品基本信息管理系统</title>
</head>
<body>
商品基本信息管理系统
注销
</body>
</html>
”

