第二次冲刺第一天之后台管理
上次冲刺我们主要是做了注册功能和搜索功能并且专注于app的功能
一个app也需要管理者进行后台的维护,所以我们首先把后台的管理员通过web端的方式来实现
后台主要是实现数据的增删改查和一个用户登录的界面,这个我们会用两天时间做完
用到的技术就是jsp直接数据库,没有用SERVLET
这里贴一下这个代码
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <html> <head lang="en"> <meta charset="UTF-8"> <title>菜谱管理</title> <link rel="stylesheet" href="css/bootstrap.min.css"/> <link rel="stylesheet" href="css/bootstrap-theme.min.css"/> <link rel="stylesheet" href="css/bootstrap-table.min.css" /> </head> <body> <div class="container"> <nav class="navbar navbar-default" role="navigation"> <div class="navbar-header"> <a class="navbar-brand" href="#">后台管理</a> </div> <div> <ul class="nav navbar-nav"> <li><a href="userManager.do">用户管理</a></li> <li class="active"><a href="shopManager.do">餐厅&菜谱管理</a></li> <li><a href="orderManager.do">订单&评论管理</a></li> </ul> </div> </nav> <div > <button > 新增菜谱 </button> </div> <table > data-url="getFoodByShop.do?shop_id=${shop_id }" data-click-to-select="true" data-query-params="queryParams" data-pagination="false" data-search="true" data-height="600"> <thead> <tr> <th data-field="food_id">ID</th> <th data-field="foodname">菜谱名称</th> <th data-field="price">价钱</th> <th data-field="intro">简介</th> <th data-field="pic" data-formatter="picFormatter">图片</th> <th data-field="action" data-formatter="actionFormatter" data-events="actionEvents">操作</th> </tr> </thead> </table> </div> <script src="js/jQuery.min.js"></script> <script src="js/bootstrap.min.js"></script> <script src="js/bootstrap-table.min.js"></script> <script src="js/bootstrap-table-zh-CN.min.js"></script> <script> function queryParams() { return { type: 'owner', sort: 'updated', direction: 'desc', per_page: 100, page: 1 }; } var $table = $('#table'), $add = $('#add'); $(function () { $table.on('check.bs.table uncheck.bs.table check-all.bs.table uncheck-all.bs.table', function () { $add.prop('disabled', !$table.bootstrapTable('getSelections').length); }); $add.click(function () { var newpage="newfoodmanager.do?shop_>${shop_id}; window.open(newpage); }); }); function actionFormatter(value, row, index) { return [ '<button class="btn btn-primary update">修改</button>'+ '<button class="btn btn-danger delete">删除</button>' ].join(''); } function picFormatter(value, row, index) { console.log(value, row, index); return [ '<img src='+value+' width="50p" height="50px"></img>' ].join(''); } window.actionEvents = { 'click .update': function (e, value, row, index) { console.log(value, row, index); var newpage="editFood.do?food_>${shop_id}; window.open(newpage); }, 'click .delete': function (e, value, row, index) { $.ajax({ cache: true, type: "POST", url:"deleteFood.do", data:{food_id:row.food_id}, async: false, error: function(request) { alert("Connection error"); }, success: function(data) { if(data.success==1) { alert("删除成功"); } else alert("删除失败"); } }); } } </script> </body> </html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <html> <head lang="en"> <meta charset="UTF-8"> <title>用户管理</title> <link rel="stylesheet" href="css/bootstrap.min.css"/> <link rel="stylesheet" href="css/bootstrap-theme.min.css"/> <link rel="stylesheet" href="css/bootstrap-table.min.css" /> </head> <body> <div class="container"> <nav class="navbar navbar-default" role="navigation"> <div class="navbar-header"> <a class="navbar-brand" href="#">后台管理</a> </div> <div> <ul class="nav navbar-nav"> <li class="active"><a href="userManager.do">用户管理</a></li> <li ><a href="shopManager.do">餐厅&菜谱管理</a></li> <li><a href="orderManager.do">订单&评论管理</a></li> </ul> </div> </nav> <div > <!-- <button > 新增用户 </button> --> </div> <table > data-url="getAllUsers.do" data-click-to-select="true" data-query-params="queryParams" data-pagination="false" data-search="true" data-height="600"> <thead> <tr> <th data-field="user_id">ID</th> <th data-field="username">用户名</th> <th data-field="userpass">密码</th> <th data-field="mobilenum">电话</th> <th data-field="address">地址</th> <th data-field="comment">备注</th> <th data-field="action" data-formatter="actionFormatter" data-events="actionEvents">操作</th> </tr> </thead> </table> </div> <script src="js/jQuery.min.js"></script> <script src="js/bootstrap.min.js"></script> <script src="js/bootstrap-table.min.js"></script> <script src="js/bootstrap-table-zh-CN.min.js"></script> <script> function queryParams() { return { type: 'owner', sort: 'updated', direction: 'desc', per_page: 100, page: 1 }; } var $table = $('#table'), $add = $('#add'); function actionFormatter(value, row, index) { return [ '<button class="btn btn-primary update">密码重置</button>' ].join(''); } window.actionEvents = { 'click .update': function (e, value, row, index) { $.ajax({ cache: true, type: "POST", url:"resetPassword.do", data:{user_id:row.user_id}, async: false, error: function(request) { alert("连接失败"); }, success: function(data) { if(data.success==1) alert("密码重置为:123456"); else alert("密码重置失败"); } }); } } </script> </body> </html>