index.jsp
上传用户:shjgzm
上传日期:2017-08-31
资源大小:2757k
文件大小:4k
源码类别:

Ajax

开发平台:

Java

  1. <%@ page contentType="text/html; charset=UTF-8"%>
  2. <%@ page language="java"%>
  3. <%@ page import="java.sql.*,ajax.db.DBUtils"%>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  5. <html>
  6. <head>
  7. <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  8. <title>信息排序</title>
  9. <style type="text/css">
  10. /* 移动节点的样式 */
  11. #movableNode{
  12.     position:absolute;
  13. }
  14. /* 指示箭头的样式 */
  15. #arrDestInditcator{
  16.     position:absolute;
  17.     display:none;
  18.     width:100px;
  19. }
  20. /* 列表整体样式 */
  21. #arrangableNodes,#movableNode ul{
  22.     padding-left:0px;
  23.     margin-left:0px;
  24.     margin-top:0px;
  25.     padding-top:0px;
  26. }
  27. /* 列表项样式 */
  28. #arrangableNodes li,#movableNode li{
  29.     list-style-type:none;
  30.     cursor:default;
  31. }
  32. </style>
  33. <!-- 引入sort.js -->
  34. <script type="text/javascript" src="sort.js"></script>
  35. <script type="text/javascript">
  36. var xmlHttp;    //用于保存XMLHttpRequest对象的全局变量
  37. //用于创建XMLHttpRequest对象
  38. function createXmlHttp() {
  39.     //根据window.XMLHttpRequest对象是否存在使用不同的创建方式
  40.     if (window.XMLHttpRequest) {
  41.        xmlHttp = new XMLHttpRequest();                  //FireFox、Opera等浏览器支持的创建方式
  42.     } else {
  43.        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");//IE浏览器支持的创建方式
  44.     }
  45. }
  46. //保存节点当前顺序
  47. function saveNodes() {
  48.     var nodes = document.getElementById("arrangableNodes").getElementsByTagName('li');
  49.     var newSeq = "";
  50.     for(var i=1; i<=nodes.length; i++){
  51.         if (i > 1) {
  52.             newSeq = newSeq + ",";
  53.         }
  54.         newSeq = newSeq + nodes[i-1].id + "_" + i;
  55.     }
  56.     createXmlHttp();                            //创建XmlHttpRequest对象
  57.     xmlHttp.onreadystatechange = saveOver;      //设置回调函数
  58.     xmlHttp.open("POST", "sort_info.jsp", true);
  59.     //设置POST请求体类型
  60.     xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  61.     xmlHttp.send("newSeq=" + encodeURI(newSeq));//发送包含新顺序的节点信息
  62. }
  63. //保存信息完毕后的回调函数
  64. function saveOver() {
  65.     if (xmlHttp.readyState == 4) {
  66.         if (xmlHttp.responseText == "OK") {
  67.             alert("保存成功。");
  68.         } else {
  69.             alert("保存失败。");
  70.         }
  71.     }
  72. }
  73. </script>
  74. </head>
  75. <body>
  76. <h1>信息排序</h1>
  77. <ul id="arrangableNodes">
  78. <%
  79.     String sql = "select * from sort_info order by seq asc";   //定义查询数据库的SQL语句
  80.     Connection conn = null;                 //声明Connection对象
  81.     PreparedStatement pstmt = null;         //声明PreparedStatement对象
  82.     ResultSet rs = null;                    //声明ResultSet对象
  83.     try {
  84.         conn = DBUtils.getConnection();     //获取数据库连接
  85.         pstmt = conn.prepareStatement(sql); //根据sql创建PreparedStatement
  86.         rs = pstmt.executeQuery();          //执行查询,返回结果集
  87.         while (rs.next()) {
  88.             %>
  89.             <li id="<%=rs.getString("id")%>"><%=rs.getString("info")%></li>
  90.             <%
  91.         }
  92.     } catch (SQLException e) {
  93.         System.out.println(e.toString());
  94.     } finally {
  95.         DBUtils.close(rs);                  //关闭结果集
  96.         DBUtils.close(pstmt);               //关闭PreparedStatement
  97.         DBUtils.close(conn);                //关闭连接
  98.     }
  99. %>
  100. </ul>
  101. <p>
  102. <input type="button" onclick="saveNodes();" value="保存">
  103. </p>
  104. <div id="movableNode"><ul></ul></div>
  105. <div id="arrDestInditcator"><img src="insert.gif"></div>
  106. </body>
  107. </html>