1. 程式人生 > >Java框架SSH結合Easyui控制元件實現省市縣三級聯動示例解析

Java框架SSH結合Easyui控制元件實現省市縣三級聯動示例解析

Easyui呼叫資料庫實現省市縣區三級聯動的效果如果下






1、首先要設計資料庫,如圖所示。一個有4個欄位code,note,pycode。code:行政區劃程式碼,note:中文註釋,pycode:拼音縮寫。 其中code是由6個欄位組成。如果是省級最後4位是0000,如果是地級市最後2位是00,其他是縣區。 


2、我用的是java、SSH框架結合Easyui控制元件

3、html程式碼如下

<tr>                               
   <td class="left">省:</td>  
   <td><input name="contact.province" id="province" style="width: 174px;" ></td>     
   <td class="left">市:</td>          
   <td><input  name="contact.city" id="city" style="width: 174px;"></td>                       
   <td class="left">縣區:</td>  
   <td><input name="contact.county" id="county" style="width: 174px;" ></td>
</tr>

4、對應的JS程式碼如下 
$(function(){
  
 // 下拉框選擇控制元件,下拉框的內容是動態查詢資料庫資訊
 $('#province').combobox({ 
    url:'apply/provinceCombobox_combobox.action',
    editable:false, //不可編輯狀態
    cache: false,
   // panelHeight: 'auto',//自動高度適合
    valueField:'code',  
    textField:'note',
     
 onHidePanel: function(){
 
   $("#city").combobox("setValue",'');
   $("#county").combobox("setValue",'');
   $("#cregicounty").val('');
  var province = $('#province').combobox('getValue'); 
  if(province!=''){
  $.ajax({
  type: "POST",
  url: "apply/cityCombobox_combobox.action?province="+province,
  cache: false,
  dataType : "json",
  success: function(data){
  $("#city").combobox("loadData",data);
                 }
                }); 
              }
           } 
         }); 
  
 $('#city').combobox({ 
 
   editable:false, //不可編輯狀態
   cache: false,
   //panelHeight: 'auto',//自動高度適合
   valueField:'code',  
   textField:'note',
   onHidePanel: function(){
   $("#cregicounty").val('');
   $("#county").combobox("setValue",'');
  var city = $('#city').combobox('getValue'); 
  if(city!=''){
  $.ajax({
  type: "POST",
  url: "apply/countyCombobox_combobox.action?city="+city,
  cache: false,
  dataType : "json",
  success: function(data){
  $("#county").combobox("loadData",data);
                 }
                }); 
              }
           }
  }); 
 $('#county').combobox({ 
   editable:false, //不可編輯狀態
   cache: false,
  // panelHeight: 'auto',//自動高度適合
   valueField:'code',  
   textField:'note',
   onHidePanel: function(){
     var str=$('#county').combobox('getText');
   $("#cregicounty").val(str); 
           }
 }); 
  
  $('#country').combobox({//國家程式碼初始化 
 valueField:'english',  
   textField:'note',
   url:'json/country.json',
   cache: false,
  //panelHeight: 'auto',//自動高度適合
   onChange: function(newValue,oldValue){ 
 
   countrySearch(newValue);
   countrys(newValue);
   }
 });
}); 

5、Java的Action程式碼 
//查詢全國行政區程式碼省
 public String provinceCombobox() throws Exception{
  
 List list=comboboxService.findProvince();
 this.jsonUtil(list);
 return null;
 }
  
 //查詢全國行政區程式碼市
 public String cityCombobox() throws Exception{
   
 List list=comboboxService.findCity(province);
 this.jsonUtil(list);
   return null;
 }
  
 //查詢全國行政區程式碼縣區
 public String countyCombobox() throws Exception{
  
 List list=comboboxService.findCounty(city);
 this.jsonUtil(list);
   return null;
 }
  
  
 //呼叫json工具方法,傳入引數alist
 public void jsonUtil(Object accountlist) throws Exception{
  HttpServletResponse response = ServletActionContext.getResponse(); 
  log.info("JSON格式:" + accountlist.toString());
   
  String returnJson = JsonConvert.returnJson(accountlist);
  response.setCharacterEncoding("utf-8");
  response.getWriter().println(returnJson);
 }


6、工具JSON程式碼

import java.io.StringWriter;
 
import org.codehaus.jackson.map.ObjectMapper;
 
public class JsonConvert {
 static String jsonStr;
 public static String returnJson(Object object) throws Exception{
 ObjectMapper objectMapper = new ObjectMapper();
 StringWriter stringWriter = new StringWriter();
 objectMapper.writeValue(stringWriter, object);
  
 jsonStr = stringWriter.toString();
 return jsonStr;
 }
}

7、對應介面程式碼 
//查詢省
public List findProvince() throws Exception;
//查詢市
public List findCity(String code) throws Exception;
//查詢縣區
public List findCounty(String code) throws Exception;


 8、對應介面實現類程式碼 

//下拉框--查詢省
public List findProvince() {
log.info("===下拉框--查詢省");
 
Criteria criteria=this.sessionFactory.getCurrentSession().createCriteria(CareacodeTblQg.class);
criteria.add(Restrictions.like("code", "%0000"));
criteria.addOrder(Order.asc("code"));
 
return criteria.list();
}
 
//下拉框--查詢市
public List findCity(String code2) {
log.info("===下拉框--查詢市");
String id=code2.substring(0,2);
 
Criteria criteria=this.sessionFactory.getCurrentSession().createCriteria(CareacodeTblQg.class);
criteria.add(Restrictions.like("code", id+"%00"));
criteria.add(Restrictions.ne("code",code2 ));
criteria.addOrder(Order.asc("code"));
 
return criteria.list();
}
 
//下拉框--查詢縣區
public List findCounty(String code3) {
log.info("===下拉框--查詢縣區");
 
String id=code3.substring(0,4);
Criteria criteria=this.sessionFactory.getCurrentSession().createCriteria(CareacodeTblQg.class); 
 
criteria.add(Restrictions.like("code", id+"%"));
criteria.add(Restrictions.not(Restrictions.like("code", "%01")));
criteria.add(Restrictions.ne("code",code3 ));
criteria.addOrder(Order.asc("code"));
 
return criteria.list();
}


?
<tr>                               
   <td class="left">省:</td>  
   <td><input name="contact.province" id="province" style="width: 174px;" ></td>     
   <td class="left">市:</td>          
   <td><input  name="contact.city" id="city" style="width: 174px;"></td>                       
   <td class="left">縣區:</td>  
   <td><input name="contact.county" id="county" style="width: 174px;" ></td>
</tr>

相關推薦

Java框架SSH結合Easyui控制元件實現市縣三級聯動示例解析

Easyui呼叫資料庫實現省市縣區三級聯動的效果如果下 1、首先要設計資料庫,如圖所示。一個有4個欄位code,note,pycode。code:行政區劃程式碼,note:中文註釋,pycode:拼音縮寫。 其中code是由6個欄位組成。如果是省級最後4位是

Easyui實現市縣三級聯動

Easyui呼叫資料庫實現省市縣區三級聯動的效果如果下 1、首先要設計資料庫,如圖所示。一個有4個欄位code,note,pycode。code:行政區劃程式碼,note:中文註釋,pycode:拼音縮寫。 其中code是由6個欄位組成。如果是省級最後4位是00

原生js使用ajax實現市縣三級聯動

chang onchange mes ror charset += ctype type nload <!DOCTYPE html> <html lang="en"> <head> <meta charset="U

jQuery實現市縣三級聯動選單

使用JQuery實現的全國省市縣三級聯動選單,沒有使用ajax,資料也不是從資料庫中動態讀取出來的,就是簡單的jquery,方便實用,實現效果如下圖: 1、定義資料,我們可以將省、市、縣定義為一個js檔案中,分別為三個陣列存放,下面是舉例,所以只列出部分省、市、縣,全國

PHP+ajax實現市縣三級聯動

//首頁 <?php header('content-type:text/html;charset=utf-8');$conn=mysql_connect('localhost','root','')or die('資料庫連線失敗!');mysql_select_db

安卓基礎--三分鐘實現市縣三級聯動

還記得之前課本上講的牛頓的那句名言吧?“如果我看得更遠一點的話,是因為我站在巨人的肩膀上。”所以說如果有巨人的肩膀還是要粘一下光的,哈哈。所以推薦一個非常好用的實現三級聯動的庫,有了這個,就可以三分鐘整合時間選擇器,省市縣選擇器。 專案地址:https://g

android開發——用GridView實現市縣三級聯動

前段時間寫了一個DEMO,裡面用到省市縣三級聯動的功能,稍微整理了一下。以下程式碼中大部分資料來源於網上的下拉列表的省市縣三級聯動的例子,這裡我作出了改動,用的是GridView來顯示省市縣,程式碼有點繁瑣,但是顯示效果還是不錯的。 顯示效果如下圖所示:未點選按

JSON+JS實現市縣三級聯動下拉框

function Area(selector){ if (!Area.ALL_AREAS) { throw new Error('areas not init!'); } this.selector = selector; $(this.selecto

Ajax + JSON + Servlet + Oracle資料庫實現市縣三級聯動效果

web.xml <servlet> <servlet-name>GetCity</servlet-name> <servlet-class>com.yyb.servlet.GetCity</ser

Java Web中使用JSPSmartUpload控制元件實現檔案的上傳和下載(解決了中文亂碼問題)(JSP頁面採用GBK編碼)

package edu.uestc.updown; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletConfig; import javax.servlet.ServletException

android與HTML5相結合實現市縣三級聯動

eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w

市縣三級聯動多種實現方式

採用HTML+css+jQuery 後臺使用Javaweb+JDBC+DBUtils+MySQL   省市縣資料為資料庫獲取的資料   後期也會增加準確度更高的行政區劃分資料,供網友參考使用。   歡迎關注部落格:https://blog.c

市縣三級聯動 javascript 原生實現例項

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>三級 省市區</title> </head> <body> &l

easyui combobox下拉框市縣三級聯動(從資料庫獲取資料)

//combobox的onLoadSuccess,onChange,onSelect事件    省:<input id="province" style="width: 110px;" /> 市:<input id="city" style="width

基於MVC4+EasyUI的Web開發框架經驗總結(13)--DataGrid控制元件實現自動適應寬頻高度

在預設情況下,EasyUI的DataGrid好像都沒有具備自動寬度的適應功能,一般是指定畫素寬度的,但是使用的人員計算機的螢幕解析度可能不一樣,因此導致有些地方顯示太大或者太小,總是不能達到好的預期效果,如果DataGrid能夠根據視窗尺寸進行伸縮,效果應該好很多。本文主要介紹DataGrid控制元件實現自動

使用EasyUI的DateBox控制元件實現預設開啟月份選擇+顏色標註

  近期需要對2015年的一個專案進行維護,要到這樣的一個需求:每週的值班計劃需要提前制定;提供給使用者一個介面,可以清楚的看到每年、每月有哪些周已經制定了計劃。 經過十分鐘的思考,我決定在時間控制元件上做一些變動。讓使用者可以在選擇時間的時候,可以看到今年那些月份內都已經制定計劃、部分制定計劃、沒有制定計

使用matlabcontrol控制元件實現java與matlab混合程式設計

背景: 本人在做畢設時需要實現以下場景,web前端接收資料,傳到Jsp後端後,接著需要將前端傳遞來的資料送到matlab演算法函式中,使用matlab進行演算法的計算,得到結果後,再次將資料傳到JSP後端,最終實現結果資料在前端網頁的顯示。最初考慮的是將matl

java 控制元件實現回車到下一個焦點控制元件,功能同tab鍵。

簡單示例(紅色為關鍵句):import javax.swing.*;import java.awt.*;import java.awt.event.*;public class MyTest extends JFrame implements KeyListener{priv

例項:SSH結合Easyui實現Datagrid的新增功能和Validatebox的驗證功能.

       先看一下實現的效果:       (1)點選新增學生資訊按鍵後跳出對話方塊,其中的學生主鍵和姓名不能為空,而且學生主鍵不能和資料庫中已有的重複。 (2)當輸入已有的學生資訊的時候,提示已被使用 (3)當操作人員不顧提示,強行提交的時候。系統拒絕提交,

Android開發之玩轉FlexboxLayout佈局(可用於普通控制元件實現流式佈局,也可結合RecycleView實現流式佈局)

在這之前,我曾認真的研究過鴻洋大神的Android 自定義ViewGroup 實戰篇 -> 實現FlowLayout,按照大神的思路寫出了一個流式佈局,所有的東西都是難者不會會者不難,當自己能自定義流式佈局的時候就會覺得這東西原來很簡單了。如果各位小夥伴也看過那篇