cascade_street.js 6.0 KB

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