<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        使用Ajax和Jquery配合數(shù)據(jù)庫(kù)實(shí)現(xiàn)下拉框的二級(jí)聯(lián)動(dòng)的示例

        來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:21:11
        文檔

        使用Ajax和Jquery配合數(shù)據(jù)庫(kù)實(shí)現(xiàn)下拉框的二級(jí)聯(lián)動(dòng)的示例

        使用Ajax和Jquery配合數(shù)據(jù)庫(kù)實(shí)現(xiàn)下拉框的二級(jí)聯(lián)動(dòng)的示例:首先我們需要先建立好數(shù)據(jù)庫(kù),將一些數(shù)據(jù)插入進(jìn)去 需要兩張表: province:省份表 city: 城市表 如圖: 然后再在java中建立相關(guān)的實(shí)體類與之對(duì)應(yīng) 再然后,我們就能開始做jdbc的操作了 public class ConnectionFactory { private
        推薦度:
        導(dǎo)讀使用Ajax和Jquery配合數(shù)據(jù)庫(kù)實(shí)現(xiàn)下拉框的二級(jí)聯(lián)動(dòng)的示例:首先我們需要先建立好數(shù)據(jù)庫(kù),將一些數(shù)據(jù)插入進(jìn)去 需要兩張表: province:省份表 city: 城市表 如圖: 然后再在java中建立相關(guān)的實(shí)體類與之對(duì)應(yīng) 再然后,我們就能開始做jdbc的操作了 public class ConnectionFactory { private

        首先我們需要先建立好數(shù)據(jù)庫(kù),將一些數(shù)據(jù)插入進(jìn)去

        需要兩張表:

        province:省份表

        city: 城市表

        如圖:

        然后再在java中建立相關(guān)的實(shí)體類與之對(duì)應(yīng)

        再然后,我們就能開始做jdbc的操作了

        public class ConnectionFactory { 
         private static String driver; 
         private static String url; 
         private static String user; 
         private static String password; 
         static { 
         Properties prop = new Properties(); 
         //讀取文件 
         
         try { 
         InputStream in = ConnectionFactory.class.getResourceAsStream("./jdbc.properties"); 
         
         prop.load(in); 
         driver = prop.getProperty("jdbc.driver"); 
         url = prop.getProperty("jdbc.url"); 
         user = prop.getProperty("jdbc.user"); 
         password = prop.getProperty("jdbc.password"); 
         } catch (IOException e) { 
         e.printStackTrace(); 
         } 
         
         } 
         
         /** 
         * 獲取連接對(duì)象 
         * @return 
         */ 
         public static Connection getConnection(){ 
         Connection conn = null; 
         
         try { 
         Class.forName(driver); 
         conn = DriverManager.getConnection(url, user, password); 
         
         } catch (Exception e) { 
         throw new RuntimeException(e); 
         } 
         
         return conn; 
         } 
         
         /** 
         * 關(guān)閉資源 
         * @param conn 
         * @param pstmt 
         * @param stmt 
         * @param rs 
         */ 
         public static void close(Connection conn,PreparedStatement pstmt,Statement stmt,ResultSet rs){ 
         
         try { 
         if (conn != null) { 
         conn.close(); 
         } 
         
         if (pstmt != null) { 
         pstmt.close(); 
         } 
         
         if (stmt != null) { 
         stmt.close(); 
         } 
         
         if (rs != null) { 
         rs.close(); 
         } 
         } catch (SQLException e) { 
         throw new RuntimeException(e); 
         } 
         
         } 
        

        首先我們可以在頁(yè)面加載的時(shí)候獲取所有省份的信息,SQL語(yǔ)句如下

        Connection conn = null; 
         PreparedStatement pstmt = null; 
         Province province2 = null; 
         
         @Override 
         public ArrayList<Province> findAllPro() { 
         ResultSet rs = null; 
         ArrayList<Province> pros = null; 
         try { 
         String sql = "select id,place from province"; 
         conn = ConnectionFactory.getConnection(); 
         pstmt = conn.prepareStatement(sql); 
         pros = new ArrayList<Province>(); 
         
         rs = pstmt.executeQuery(); 
         
         while(rs.next()){ 
         Province province = new Province(); 
         province.setId(rs.getInt(1)); 
         province.setPlace(rs.getString(2)); 
         pros.add(province); 
         } 
         
         } catch (SQLException e) { 
         throw new RuntimeException(e); 
         } 
         
         return pros; 
         } 

        將查到的數(shù)據(jù)放到后臺(tái),建立一個(gè)SelectedServlet類,用于接收查詢到的所有省份的信息

        response.setContentType("application/json;charset=utf-8"); 
         response.setCharacterEncoding("utf-8"); 
         request.setCharacterEncoding("utf-8"); 
         //創(chuàng)建一個(gè)Place對(duì)象 
         ArrayList<Province> pros= new Place().findAllPro(); 
         PrintWriter out = response.getWriter(); 
         //將集合直接轉(zhuǎn)換為Json對(duì)象 
         out.write(JSONArray.fromObject(pros).toString()); 

        在這里會(huì)用到集合轉(zhuǎn)換Json對(duì)象,我們需要導(dǎo)入以下幾個(gè)包

        然后我們開始寫前臺(tái)頁(yè)面:

        <body> 
         省份:<select id="province"> 
         <option>--請(qǐng)選擇省份--</option> 
         </select> 
         
         城市:<select id="city"> 
         <option>--請(qǐng)選擇城市--</option> 
         </select> 
         <br/><br/> 
         <span></span> 
         </body> 

        然后jQuery代碼如下:(由于我導(dǎo)入的jQuery版本比較低,所以使用的方法是getJSON,而不是getJson)

        $.getJSON("SelectedServlet",function(data,textStatus){ 
         var provinces = data; 
         
         var res = ""; 
         for(var i =0;i<provinces.length;i++){ 
         <span style="white-space:pre"> </span>res += "<option>"+provinces[i].place+"</option>"; 
         } 
         $("#province").append(res); 
         }); 

        這樣就能在頁(yè)面加載的時(shí)候獲取到數(shù)據(jù)

        然后我們?cè)賮碜雎?lián)動(dòng),首先給下拉框添加一個(gè)change事件,然后獲取選中的信息,將選中的信息發(fā)送到另一個(gè)CityServlet中

        //下拉框改變時(shí)觸發(fā)的事件 
         $("#province").change(function(){ 
         var seled = $("option:selected").html(); 
         
         $("span").html(seled); 
         $.getJSON("CityServlet",{ 
         "province":encodeURI(encodeURI(seled)) 
         },function(data){ 
         $("#city").html(""); 
         var citys = data; 
         var res = ""; 
         for(var i = 0;i<citys.length;i++){ 
         res += "<option>"+citys[i].place+"</option>"; 
         } 
         $("#city").append(res); 
         }); 
         
         }); 

        服務(wù)器通過獲得的信息通過sql語(yǔ)句查詢出來,SQL代碼如下:

        public ArrayList<City> findAllCityByPro(String name) { 
         ResultSet rs = null; 
         ArrayList<City> citys = null; 
         try { 
         //通過名字獲得所有值 
         String sql = "select c.city_place from city c ," 
         + "province p where c.province_id = " 
         + " (select id from province where place = '"+ name +"') " 
         + " and c.province_id = p.id"; 
         conn = ConnectionFactory.getConnection(); 
         pstmt = conn.prepareStatement(sql); 
         citys = new ArrayList<City>(); 
         System.out.println(sql); 
         rs = pstmt.executeQuery(); 
         
         while(rs.next()){ 
         City city = new City(); 
         city.setPlace(rs.getString(1)); 
         citys.add(city); 
         } 
         System.out.println(citys); 
         
         } catch (SQLException e) { 
         e.printStackTrace(); 
         } 
         
         return citys; 
         } 

        將查詢到的數(shù)據(jù)發(fā)送到后臺(tái),后臺(tái)接收到數(shù)據(jù)后將其轉(zhuǎn)換為Json對(duì)象,并通過回調(diào)函數(shù)發(fā)送到前臺(tái),然后前臺(tái)就可以通過事件直接獲取到數(shù)據(jù),而不用各種跳轉(zhuǎn)頁(yè)面,這就是Ajax(Asynchronous Javascript And XML),

        protected void doGet(HttpServletRequest request, HttpServletResponse response) 
         throws ServletException, IOException { 
         response.setContentType("application/json;charset=utf-8"); 
         response.setCharacterEncoding("utf-8"); 
         request.setCharacterEncoding("utf-8"); 
        // String proName = "浙江"; 
         String proName = URLDecoder.decode(URLDecoder.decode(request.getParameter("province"), "utf-8"), 
         "utf-8"); 
         ArrayList<City> citys= new Place().findAllCityByPro(proName); 
         PrintWriter out = response.getWriter(); 
         out.write(JSONArray.fromObject(citys).toString()); 
         
         } 

        至于顯示頁(yè)面的代碼也在前面寫到j(luò)Query語(yǔ)句中了

        效果如下:

        以上這篇使用Ajax和Jquery配合數(shù)據(jù)庫(kù)實(shí)現(xiàn)下拉框的二級(jí)聯(lián)動(dòng)的示例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

        聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        使用Ajax和Jquery配合數(shù)據(jù)庫(kù)實(shí)現(xiàn)下拉框的二級(jí)聯(lián)動(dòng)的示例

        使用Ajax和Jquery配合數(shù)據(jù)庫(kù)實(shí)現(xiàn)下拉框的二級(jí)聯(lián)動(dòng)的示例:首先我們需要先建立好數(shù)據(jù)庫(kù),將一些數(shù)據(jù)插入進(jìn)去 需要兩張表: province:省份表 city: 城市表 如圖: 然后再在java中建立相關(guān)的實(shí)體類與之對(duì)應(yīng) 再然后,我們就能開始做jdbc的操作了 public class ConnectionFactory { private
        推薦度:
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 香港a毛片免费观看| 亚洲中文字幕无码一去台湾| 免费人成在线观看播放a| 午夜色a大片在线观看免费| 亚洲jizzjizz在线播放久| 拨牐拨牐x8免费| 亚洲AV无码男人的天堂| 国产又长又粗又爽免费视频| 偷自拍亚洲视频在线观看| 亚洲国产精品成人久久蜜臀 | 91亚洲国产成人久久精品 | 一区二区免费视频| 久久丫精品国产亚洲av不卡| 精品国产免费人成电影在线观看| 亚洲欧洲精品一区二区三区| 99无码人妻一区二区三区免费| youjizz亚洲| 全部免费国产潢色一级| 国产免费一区二区三区免费视频| 亚洲国产精品无码久久SM | 国产麻豆剧传媒精品国产免费| AV激情亚洲男人的天堂国语| 亚洲日韩国产一区二区三区| a毛片免费全部在线播放**| 亚洲专区在线视频| 全免费一级午夜毛片| 欧洲乱码伦视频免费国产| 亚洲国产婷婷六月丁香| 99久久国产热无码精品免费 | 国产福利在线免费| 美女被免费视频网站a| 亚洲乱码国产乱码精品精| 中文字幕无码播放免费| 美女隐私免费视频看| 亚洲高清在线观看| 日本不卡视频免费| 国产精品免费AV片在线观看| 狠狠色伊人亚洲综合网站色| 亚洲色爱图小说专区| 成人免费看片又大又黄| 国产在线精品免费aaa片|