无刷新的四级联动下拉框实例(AjaxPro)

之前的“省市县镇”四级控件是使用 MagicAjax 开发的。每一级都是到数据库中读取。经过 DBA 分析,
和该控件有关的表查询量很大, SQL 语句解析次数也非常多,虽然是 Oracle 数据库还是要尽量避免的。
为此新的控件将“省市”两级的数据存放在 JS 里,而“县镇”两级从数据库中读取,同时再结合项目需
要的特殊功能。

主要功能:
用户访问网站,首先根据二级域名加载用户所在的地区(如 http://xm.XXXX.com 福建-厦门)。如果没
有二级域名,那么根据 Cookie (如果之前访问过)加载用户所在的地区。如果没有,最后根据 IP 来
加载用户所在的地区。
如果是通过 Cookie 或是 IP 来判断,最后还要进行重定向(就是将 http://www.XXXX.com 转成
http://bj.XXXX.com)。如果是根据 IP 判断的,还要把用户所在的地区存入 Cookie。方便下次使用。
为了能从数据库读取数据,直接加载相应地区,还有能从下拉框中读取用户选择的地区就自定义一些属性。

特殊功能
是否重定向、是否只显示“省市”两级、是否垂直排列下拉框(默认是横向)、是否在在省份下拉框前
显示“省份”,城市下拉框前显示“城市”......、是否禁用控件(有些情况下,你可能要禁止用户选
择,等满足条件后才能选)

其他说明
前台脚本采用 JavaScript 和 DOM 互操作,全部使用 W3C 标准使其在各种浏览器下都正常。操作
 的 value 换算成 selectedIndex --%>
//
<%-- val:下拉框的值 --%>
//
<%-- id:下拉框 ID --%>
function  Val2Index(val,id)
{
    
var sel=document.getElementById(id);
    
for(var i=0;i<sel.options.length;i++)
    
{
        
if(val==sel.options[i].value)
            
return i;
    }

    
return 0;
}

// <%-- 将