cascade.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. /**
  2. * @name jQuery Cascdejs plugin
  3. * @author rayyang
  4. * @version 1.0
  5. * @level 3级
  6. */
  7. //首先需要初始化
  8. var _provinceNetworkData =null;
  9. var _cityNetworkData =null;
  10. var _districtNetworkData =null;
  11. var _reg = new RegExp("(^|&)i=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
  12. var _r = window.location.search.substr(1).match(_reg); //匹配目标参数
  13. var uniacid = '0';
  14. if(_r) {
  15. uniacid = _r['2'];
  16. }
  17. function cascdeInit(v1,v2,v3){
  18. getProvinceData(v1,v2,v3);
  19. }
  20. // 获取省数据
  21. function getProvinceData(v1,v2,v3){
  22. $.ajax({
  23. url:'/app/index.php?i='+uniacid+'&c=entry&p=getaddress&do=shop&m=sz_yi',
  24. data:{type:'province'},
  25. type:'GET', //GET
  26. async:true, //或false,是否异步
  27. timeout:5000, //超时时间
  28. dataType:'json', //返回的数据格式:json/xml/html/script/jsonp/text
  29. success:function(data,textStatus,jqXHR){
  30. //console.log(data)
  31. _provinceNetworkData = data;
  32. getCityData(v1,v2,v3);
  33. }
  34. })
  35. }
  36. // 获取城市数据
  37. function getCityData(v1,v2,v3){
  38. var parentid = '';
  39. for (var i = 0; i < _provinceNetworkData.length; i++) {
  40. if (v1 == _provinceNetworkData[i].areaname) {
  41. parentid = _provinceNetworkData[i].id;
  42. }
  43. }
  44. $.ajax({
  45. url:'/app/index.php?i='+uniacid+'&c=entry&p=getaddress&do=shop&m=sz_yi',
  46. data:{type:'city',parentid:parentid},
  47. type:'GET', //GET
  48. async:true, //或false,是否异步
  49. timeout:5000, //超时时间
  50. dataType:'json', //返回的数据格式:json/xml/html/script/jsonp/text
  51. success:function(data,textStatus,jqXHR){
  52. //console.log(data)
  53. _cityNetworkData = data;
  54. getDistrictData(v1,v2,v3);
  55. }
  56. })
  57. }
  58. // 获取区数据
  59. function getDistrictData(v1,v2,v3){
  60. var parentid = '';
  61. for (var i = 0; i < _cityNetworkData.length; i++) {
  62. if (v2 == _cityNetworkData[i].areaname) {
  63. parentid = _cityNetworkData[i].id;
  64. }
  65. }
  66. $.ajax({
  67. url:'/app/index.php?i='+uniacid+'&c=entry&p=getaddress&do=shop&m=sz_yi',
  68. data:{type:'district',parentid:parentid},
  69. type:'GET', //GET
  70. async:true, //或false,是否异步
  71. timeout:5000, //超时时间
  72. dataType:'json', //返回的数据格式:json/xml/html/script/jsonp/text
  73. success:function(data,textStatus,jqXHR){
  74. //console.log(data)
  75. _districtNetworkData = data;
  76. setProvinceData(v1,v2,v3);
  77. }
  78. })
  79. }
  80. // 设置省
  81. function setProvinceData(v1,v2,v3){
  82. var _html = "";
  83. _html += '<option value="0">请选择省份</option>';
  84. for (var i = 0; i < _provinceNetworkData.length; i++) {
  85. var _selected = '';
  86. if (v1 == _provinceNetworkData[i].areaname) {
  87. _selected = 'selected="selected"';
  88. }
  89. _html += '<option '+_selected+' value="'+_provinceNetworkData[i].areaname+'">'+_provinceNetworkData[i].areaname+'</option>';
  90. }
  91. $("#sel-provance").html(_html);
  92. setCityData(v1,v2,v3);
  93. }
  94. //设置市
  95. function setCityData(v1,v2,v3){
  96. var _html = '<option value="0">请选择城市</option>';
  97. for (var i = 0; i < _cityNetworkData.length; i++) {
  98. var _selected = '';
  99. if (v2 == _cityNetworkData[i].areaname) {
  100. _selected = 'selected="selected"';
  101. }
  102. _html += '<option '+_selected+' value="'+_cityNetworkData[i].areaname+'">'+_cityNetworkData[i].areaname+'</option>';
  103. }
  104. $("#sel-city").html(_html);
  105. setDistrictData(v1,v2,v3);
  106. }
  107. //设置区
  108. function setDistrictData(v1,v2,v3){
  109. var _html = "";
  110. _html += '<option value="0">请选择区域</option>';
  111. for (var i = 0; i < _districtNetworkData.length; i++) {
  112. var _selected = '';
  113. if (v3 == _districtNetworkData[i].areaname) {
  114. _selected = 'selected="selected"';
  115. }
  116. _html += '<option '+_selected+' value="'+_districtNetworkData[i].areaname+'">'+_districtNetworkData[i].areaname+'</option>';
  117. }
  118. $("#sel-area").html(_html);
  119. }
  120. /*
  121. //依据省设置城市,县
  122. */
  123. function selectCity() {
  124. var _provanceid = $("#sel-provance").val();
  125. getCityData(_provanceid);
  126. setProvinceData(_provanceid);
  127. }
  128. function selectcounty() {
  129. var _provanceid = $("#sel-provance").val();
  130. var _cityid = $("#sel-city").val();
  131. getCityData(_provanceid,_cityid);
  132. setProvinceData(_provanceid,_cityid);
  133. }