• 案例39-后台查询订单详情代码实现


    1 admin/order/list.jsp代码

    <%@ page language="java" pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <HTML>
        <HEAD>
            <meta http-equiv="Content-Language" content="zh-cn">
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <link href="${pageContext.request.contextPath}/css/Style1.css" rel="stylesheet" type="text/css" />
            <script language="javascript" src="${pageContext.request.contextPath}/js/public.js"></script>
            
            <!-- 弹出层插件 -->
            <link href="${pageContext.request.contextPath}/css/popup_layer.css" type="text/css" rel="stylesheet"/>
            <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.8.3.min.js"></script>
            <script type="text/javascript" src="${pageContext.request.contextPath}/js/popup_layer.js"></script>
                    
            <!-- 调用插件弹出层的方法 -->
            <script type="text/javascript">
                $(function(){
                    //弹出层插件调用
                    new PopupLayer({
                        trigger:".clickedElement", //触发点 点击谁弹出这个div
                        popupBlk:"#showDiv", //弹出哪个div
                        closeBtn:"#closeBtn", //关闭按钮
                        useOverlay:true
                    });
                    
                });
                
                // 点击按钮查询订单的详情
                function findOrderInfoByOid(oid){
                    //清理上一次显示的内容
                    $("#showDivTab").html("");
                    //订单编号
                    $("#shodDivOid").html("");
                    //显示加载图片
                    $("#loading").css("display","block");
                    
                    //ajax异步访问数据
                    $.post(
                        "${pageContext.request.contextPath}/admin?method=findOrderInfoByOid",
                        {"oid":oid},
                        function(data){
                            //隐藏加载图片
                            $("#loading").css("display","none");
                            /*
                             * [
                             * {"shop_price":5999.0,"count":2,"pname":"微星(MSI)GE62 2QC-264XCN","pimage":"products/1/c_0042.jpg","subtotal":11998.0},
                             * {"shop_price":1299.0,"count":1,"pname":"小米 4c 标准版","pimage":"products/1/c_0001.jpg","subtotal":1299.0},{"shop_price":2699.0,"count":6,"pname":"中兴 AXON","pimage":"products/1/c_0002.jpg","subtotal":16194.0},
                             * {"shop_price":2298.0,"count":1,"pname":"vivo X5Pro","pimage":"products/1/c_0014.jpg","subtotal":2298.0}]
                             */
                            var content="<tr id='showTableTitle'><th width='20%'>图片</th><th width='25%'>商品</th><th width='20%'>价格</th><th width='15%'>数量</th><th width='20%'>小计</th></tr>";
                            for(var i=0;i<data.length;++i){
                                content+="<tr style='text-align: center;'>"+
                                "<td>"+
                                "<img src='${pageContext.request.contextPath }/"+data[i].pimage+"' width='70' height='60'>"+
                                "</td>"+
                                "<td>"+
                                "<a target='_blank'>"+data[i].pname+"</a>"+
                                "</td>"+
                                "<td>"+data[i].shop_price+"</td>"+
                                "<td>"+data[i].count+"</td>"+
                                "<td><span class='subtotal'>"+data[i].subtotal+"</span></td>"+
                                "</tr>";
                            }
                            $("#showDivTab").html(content);
                            
                            //订单编号
                            $("#shodDivOid").html(oid);
                        },
                        "json"
                    );
                }
                
                
            </script>
            
        </HEAD>
        <body>
        
            <form id="Form1" name="Form1" action="${pageContext.request.contextPath}/user/list.jsp" method="post">
                <table cellSpacing="1" cellPadding="0" width="100%" align="center" bgColor="#f5fafe" border="0">
                    <TBODY>
                        <tr>
                            <td class="ta_01" align="center" bgColor="#afd1f3">
                                <strong>订单列表</strong>
                            </TD>
                        </tr>
                        
                        <tr>
                            <td class="ta_01" align="center" bgColor="#f5fafe">
                                <table cellspacing="0" cellpadding="1" rules="all"
                                    bordercolor="gray" border="1" id="DataGrid1"
                                    style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 100%; WORD-BREAK: break-all; BORDER-BOTTOM: gray 1px solid; BORDER-COLLAPSE: collapse; BACKGROUND-COLOR: #f5fafe; WORD-WRAP: break-word">
                                    <tr
                                        style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; HEIGHT: 25px; BACKGROUND-COLOR: #afd1f3">
    
                                        <td align="center" width="10%">
                                            序号
                                        </td>
                                        <td align="center" width="10%">
                                            订单编号
                                        </td>
                                        <td align="center" width="10%">
                                            订单金额
                                        </td>
                                        <td align="center" width="10%">
                                            收货人
                                        </td>
                                        <td align="center" width="10%">
                                            订单状态
                                        </td>
                                        <td align="center" width="50%">
                                            订单详情
                                        </td>
                                    </tr>
                                    <c:forEach items="${orderList }" var="order" varStatus="vs">
                                    
                                    
                                        <tr onmouseover="this.style.backgroundColor = 'white'"
                                            onmouseout="this.style.backgroundColor = '#F5FAFE';">
                                            <td style="CURSOR: hand; HEIGHT: 22px" align="center"
                                                width="18%">
                                                ${vs.count }
                                            </td>
                                            <td style="CURSOR: hand; HEIGHT: 22px" align="center"
                                                width="17%">
                                                ${order.oid }
                                            </td>
                                            <td style="CURSOR: hand; HEIGHT: 22px" align="center"
                                                width="17%">
                                                ${order.total }
                                            </td>
                                            <td style="CURSOR: hand; HEIGHT: 22px" align="center"
                                                width="17%">
                                                ${order.name }
                                            </td>
                                            <td style="CURSOR: hand; HEIGHT: 22px" align="center"
                                                width="17%">
                                                ${order.state==1?"已付款":"未付款" }
                                            </td>
                                            <td align="center" style="HEIGHT: 22px">
                                                <input type="button" value="订单详情" class="clickedElement" onclick="findOrderInfoByOid('${order.oid}')"/>
                                            </td>
                            
                                        </tr>
                                    </c:forEach>
                                    
                                </table>
                            </td>
                        </tr>
                        
                    </TBODY>
                </table>
            </form>
            
            <!-- 弹出层 HaoHao added -->
            <div id="showDiv" class="blk" style="display:none;">
                <div class="main">
                    <h2>订单编号:<span id="shodDivOid" style="font-size: 13px;color: #999">123456789</span></h2>
                    <a href="javascript:void(0);" id="closeBtn" class="closeBtn">关闭</a>
                    <div id="loading" style="padding-top:30px;text-align: center;">
                        <img alt="" src="${pageContext.request.contextPath }/images/loading4.gif" height="100px" width="100px">
                    </div>
                    <div style="padding:20px;">
                        <table id="showDivTab" style="100%">
                            <!-- <tr id='showTableTitle'>
                                <th width='20%'>图片</th>
                                <th width='25%'>商品</th>
                                <th width='20%'>价格</th>
                                <th width='15%'>数量</th>
                                <th width='20%'>小计</th>
                            </tr> -->
                            <%-- <tr style='text-align: center;'>
                                <td>
                                    <img src='${pageContext.request.contextPath }/products/1/c_0014' width='70' height='60'>
                                </td>
                                <td><a target='_blank'>电视机</a></td>
                                <td>3000</td>
                                <td>3</td>
                                <td><span class='subtotal'>¥9000</span></td>
                            </tr> --%>
                        </table>
                    </div>
                </div>
            </div>
        </body>
    </HTML>

    2 AdminServlet-findOrderInfoByOid代码

    // 6根据订单oid查询订单项和商品信息 findOrderInfoByOid
    public void findOrderInfoByOid(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        
        //模拟从服务器读数据有一个延迟的效果
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e1) {
            
            e1.printStackTrace();
        }
        
        //获得oid
        String oid = request.getParameter("oid");
        
        AdminService service = new AdminService();
        List<Map<String,Object>> mapList = null;
        try {
            mapList = service.findOrderInfoByOid(oid);
        } catch (SQLException e) {
            
            e.printStackTrace();
        }
        //格式转换
        Gson gson = new Gson();
        String json = gson.toJson(mapList);
        //注意ajax提交回写
        System.out.println(json);
        /*
         * [
         * {"shop_price":5999.0,"count":2,"pname":"微星(MSI)GE62 2QC-264XCN","pimage":"products/1/c_0042.jpg","subtotal":11998.0},
         * {"shop_price":1299.0,"count":1,"pname":"小米 4c 标准版","pimage":"products/1/c_0001.jpg","subtotal":1299.0},{"shop_price":2699.0,"count":6,"pname":"中兴 AXON","pimage":"products/1/c_0002.jpg","subtotal":16194.0},
         * {"shop_price":2298.0,"count":1,"pname":"vivo X5Pro","pimage":"products/1/c_0014.jpg","subtotal":2298.0}]
         */
        response.setContentType("text/html;charset=UTF-8");
        response.getWriter().write(json);
    }

    3 AdminService层代码

    //查询订单详情
    public List<Map<String, Object>> findOrderInfoByOid(String oid) throws SQLException {
        
        AdminDao dao = new AdminDao();
        return dao.findOrderInfoByOid(oid);
    }

    4 AdminDao代码

    //查询订单详情
    public List<Map<String, Object>> findOrderInfoByOid(String oid) throws SQLException {
        QueryRunner  qr = new QueryRunner(C3P0Utils.getDataSource());
        String sql ="select p.pimage,p.pname,p.shop_price,i.count,i.subtotal "
                + " from orderitem i,product p "
                + " where i.pid=p.pid and i.oid=? ";
        return qr.query(sql, new MapListHandler(),oid);
    }

    5 注意

    1 后台查询延时的模拟

    2 弹出层的原理

  • 相关阅读:
    C# WinForm编程TabControl控件的标签TabPage怎么做成图片
    javascript 用面向对象自写前端验证工具
    javascript 用面向对象自写stringbuffer工具
    java socket 深入学习tomcat 自写动态服务器 tomcat
    java socket 自写静态服务器 apache
    java socket 实现多个客户端通过服务器一对一聊天并实现文件传输
    java socket 实现多个客户端向服务器上传文件
    java socket 实现多个一对一聊天
    java 读取文件,内容方置Person 序列化到磁盘,在读入程序并写到另外地址
    java 读取文件,内容方置Person 并写到另外地址
  • 原文地址:https://www.cnblogs.com/jepson6669/p/8483097.html
Copyright © 2020-2023  润新知