Easyui调用数据库实现省市县区三级联动的效果如果下
1、首先要设计数据库,如图所示。一个有4个字段code,note,pycode。code:行政区划代码,note:中文注释,pycode:拼音缩写。 其中code是由6个字段组成。如果是省级最后4位是0000,如果是地级市最后2位是00,其他是县区。
我已经把相关数据库代码上传到我的csdn资源中,需要的同学自行下载。
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(); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持phpstudy。
本文地址:https://www.stayed.cn/item/8636
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我