region.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. /* $Id : region.js 4865 2007-01-31 14:04:10Z paulgao $ */
  2. var region = new Object();
  3. region.isAdmin = false;
  4. region.loadRegions = function(parent, type, target)
  5. {
  6. Ajax.call(region.getFileName(), 'type=' + type + '&target=' + target + "&parent=" + parent , region.response, "GET", "JSON");
  7. }
  8. /* *
  9. * 载入指定的国家下所有的省份
  10. *
  11. * @country integer 国家的编号
  12. * @selName string 列表框的名称
  13. */
  14. region.loadProvinces = function(country, selName)
  15. {
  16. var objName = (typeof selName == "undefined") ? "selProvinces" : selName;
  17. region.loadRegions(country, 1, objName);
  18. }
  19. /* *
  20. * 载入指定的省份下所有的城市
  21. *
  22. * @province integer 省份的编号
  23. * @selName string 列表框的名称
  24. */
  25. region.loadCities = function(province, selName)
  26. {
  27. var objName = (typeof selName == "undefined") ? "selCities" : selName;
  28. region.loadRegions(province, 2, objName);
  29. }
  30. /* *
  31. * 载入指定的城市下的区 / 县
  32. *
  33. * @city integer 城市的编号
  34. * @selName string 列表框的名称
  35. */
  36. region.loadDistricts = function(city, selName)
  37. {
  38. var objName = (typeof selName == "undefined") ? "selDistricts" : selName;
  39. region.loadRegions(city, 3, objName);
  40. }
  41. /* *
  42. * 处理下拉列表改变的函数
  43. *
  44. * @obj object 下拉列表
  45. * @type integer 类型
  46. * @selName string 目标列表框的名称
  47. */
  48. region.changed = function(obj, type, selName)
  49. {
  50. var parent = obj.options[obj.selectedIndex].value;
  51. region.loadRegions(parent, type, selName);
  52. }
  53. region.response = function(result, text_result)
  54. {
  55. var sel = document.getElementById(result.target);
  56. sel.length = 1;
  57. sel.selectedIndex = 0;
  58. sel.style.display = (result.regions.length == 0 && ! region.isAdmin && result.type + 0 == 4) ? "none" : '';//morestock_morecity
  59. if (document.all)
  60. {
  61. sel.fireEvent("onchange");
  62. }
  63. else
  64. {
  65. var evt = document.createEvent("HTMLEvents");
  66. evt.initEvent('change', true, true);
  67. sel.dispatchEvent(evt);
  68. }
  69. if (result.regions)
  70. {
  71. for (i = 0; i < result.regions.length; i ++ )
  72. {
  73. var opt = document.createElement("OPTION");
  74. opt.value = result.regions[i].region_id;
  75. opt.text = result.regions[i].region_name;
  76. sel.options.add(opt);
  77. }
  78. }
  79. }
  80. region.getFileName = function()
  81. {
  82. if (region.isAdmin)
  83. {
  84. return "../region.php";
  85. }
  86. else
  87. {
  88. return "region.php";
  89. }
  90. }