1. 程式人生 > 實用技巧 >客車網上售票系統03

客車網上售票系統03

一、今日完成任務

  前臺頁面中的車票查詢

  功能要求:載入頁面是查詢車票資訊,發車時間要大於當前系統時間,並且根據發車時間順序排列。輸入出發地和目的地,頁面不重新整理顯示對應車票。

二、核心原始碼

  使用知識點:ajax+json,使用到的jar包fastjson-1.2.13.jar

  (1)查詢全部車票

$(function(){
        $.post("../../../userServlet?action=ticketAll",function(data){
            //清除資料
            $("#list").empty();
            $(data).each(function(index,ticket){
                $(
"#list").append( "<tr><td>"+ticket.carnum+"</td>" +"<td>"+ticket.startLocal+"</td>" +"<td>"+ticket.arriveLocal+"</td>" +"<td>"+ticket.beginTime+"</td>" +"<td>"+ticket.endTime+"</td>" +"<td>"+ticket.price+"</td>" +"<td>"+ticket.number+"</td>" +"<td>"+"預定"+"</td></tr>" ); }); },
"json"); });
View Code
protected void ticketAll(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        resp.setCharacterEncoding("utf-8");
        List<Ticket> list = ud.showAll();
        resp.getWriter().print(JSONArray.toJSONString(list));;
    }
View Code
public List<Ticket> showAll() {
        List<Ticket> list = new ArrayList<Ticket>();
        //查詢發車時間大於當前時間
        String sql = "select * from ticket where beginTime > now() and state = 1 order by beginTime";
        Object[] obj = {};
        ResultSet rs = DBUtil.select(sql, obj);
        try {
            while(rs.next()){
                int id = rs.getInt("id");
                String carnum = rs.getString("carnum");
                String startLocal = rs.getString("startLocal");
                String arriveLocal = rs.getString("arriveLocal");
                int price = rs.getInt("price");
                String beginTime = rs.getString("beginTime");
                String endTime = rs.getString("endTime");
                int number = rs.getInt("number");
                Ticket t = new Ticket(id, carnum, startLocal, arriveLocal, price, beginTime, endTime, number);
                list.add(t);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return list;
    }
View Code

  (2)根據出發地,目的地查詢

function find(){
        var startLocal = $("#startLocal").val();
        var arriveLocal = $("#arriveLocal").val();
        $.post("../../../userServlet?action=ticketShow",{startLocal:startLocal,arriveLocal:arriveLocal},function(data){
            //清除資料
            $("#list").empty();
            $(data).each(function(index,ticket){
                $("#list").append(
                    "<tr><td>"+ticket.carnum+"</td>"
                    +"<td>"+ticket.startLocal+"</td>"
                    +"<td>"+ticket.arriveLocal+"</td>"
                    +"<td>"+ticket.beginTime+"</td>"
                    +"<td>"+ticket.endTime+"</td>"
                    +"<td>"+ticket.price+"</td>"
                    +"<td>"+ticket.number+"</td>"
                    +"<td>"+"預定"+"</td></tr>"
                );
            });
        },"json");        
    }
View Code
protected void ticketShow(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        resp.setCharacterEncoding("utf-8");
        String startLocal = req.getParameter("startLocal");
        String arriveLocal = req.getParameter("arriveLocal");
        List<Ticket> list = ud.ticketShow(startLocal,arriveLocal);
        resp.getWriter().print(JSONArray.toJSONString(list));
    }
View Code
public List<Ticket> ticketShow(String startLocal, String arriveLocal) {
        List<Ticket> list = new ArrayList<Ticket>();
        String sql = "select * from ticket where startLocal=? and arriveLocal=? and beginTime > now() and state = 1";
        Object[] obj = {startLocal,arriveLocal};
        ResultSet rs = DBUtil.select(sql, obj);
        try {
            while(rs.next()){
                int id = rs.getInt("id");
                String carnum = rs.getString("carnum");
                int price = rs.getInt("price");
                String beginTime = rs.getString("beginTime");
                String endTime = rs.getString("endTime");
                int number = rs.getInt("number");
                Ticket t = new Ticket(id, carnum, startLocal, arriveLocal, price, beginTime, endTime, number);
                list.add(t);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return list;
    }
View Code

三、頁面展示

四、遇到的問題

  ajax+json的使用不熟練

五、燃盡圖