bnbweb/js/region.js
2022-11-14 23:49:28 +08:00

108 lines
2.4 KiB
JavaScript
Executable File

/* $Id : region.js 4865 2007-01-31 14:04:10Z paulgao $ */
var region = new Object();
region.isAdmin = false;
region.loadRegions = function(parent, type, target)
{
Ajax.call(region.getFileName(), 'type=' + type + '&target=' + target + "&parent=" + parent , region.response, "GET", "JSON");
}
/* *
* 载入指定的国家下所有的省份
*
* @country integer 国家的编号
* @selName string 列表框的名称
*/
region.loadProvinces = function(country, selName)
{
var objName = (typeof selName == "undefined") ? "selProvinces" : selName;
region.loadRegions(country, 1, objName);
}
/* *
* 载入指定的省份下所有的城市
*
* @province integer 省份的编号
* @selName string 列表框的名称
*/
region.loadCities = function(province, selName)
{
var objName = (typeof selName == "undefined") ? "selCities" : selName;
region.loadRegions(province, 2, objName);
}
/* *
* 载入指定的城市下的区 / 县
*
* @city integer 城市的编号
* @selName string 列表框的名称
*/
region.loadDistricts = function(city, selName)
{
var objName = (typeof selName == "undefined") ? "selDistricts" : selName;
region.loadRegions(city, 3, objName);
}
/* *
* 处理下拉列表改变的函数
*
* @obj object 下拉列表
* @type integer 类型
* @selName string 目标列表框的名称
*/
region.changed = function(obj, type, selName)
{
var parent = obj.options[obj.selectedIndex].value;
region.loadRegions(parent, type, selName);
}
region.response = function(result, text_result)
{
var sel = document.getElementById(result.target);
sel.length = 1;
sel.selectedIndex = 0;
sel.style.display = (result.regions.length == 0 && ! region.isAdmin && result.type + 0 == 3) ? "none" : '';
if (document.all)
{
sel.fireEvent("onchange");
}
else
{
var evt = document.createEvent("HTMLEvents");
evt.initEvent('change', true, true);
sel.dispatchEvent(evt);
}
if (result.regions)
{
for (i = 0; i < result.regions.length; i ++ )
{
var opt = document.createElement("OPTION");
opt.value = result.regions[i].region_id;
opt.text = result.regions[i].region_name;
sel.options.add(opt);
}
}
}
region.getFileName = function()
{
if (region.isAdmin)
{
return "../region.php";
}
else
{
return "region.php";
}
}