我用的是数据库版的省市县
http://xinqiao.love63.cn/reg-7.html
ie下可以正常运行,firefox下返回内容为空,为什么?
请高手帮帮忙
数据库结构:
ClassID ClassName ParentID ParentPath
类编号 类名 父类编号 类别路径
页面代码:
<select name="province" onChange="getXML(this.value,city)">
<option value="0">请选择</option>
</select>
<select name="city" onChange="getXML(this.value,county)">
<option value="0">请选择</option>
</select>
<select name="county">
<option value="0">请选择</option>
</select>
js代码:
//省市县三级菜单
var objsl
var province
// 初始化select1
function init()
{
getXML(0,myForm.province);
}
//从service.asp得到数据,第一个是参数传ID,第二个是要填充的select
function getXML(pid,sl)
{
objsl=sl
xh = new ActiveXObject("Microsoft.XMLHTTP")
xh.onreadystatechange = getReady
xh.open("GET","../WorkOn.asp?pid=" + pid,true)
xh.send()
}
function getReady()
{
if(xh.readyState==4)
{
if(xh.status==200)
{
slremove()
var xmldom = new ActiveXObject("Microsoft.XMLDOM")
xmldom = xh.responseXML
if(xmldom == null || xmldom.documentElement == null)
{
addsl("-1","抱歉,装载数据失败。原因:返回的数据不是一个XML结构的文档.",objsl)
return
}
var nodes = xmldom.documentElement.selectNodes("/root/item")
if(nodes == null )
{
addsl("-1","抱歉,装载数据失败。原因:没有返回正确的XML结构格式.",objsl)
return
}
addsl("-1","-请选择-",objsl)
//循环增加数据
for(var i=0;i<nodes.length;i++)
{
addsl(nodes[i].selectSingleNode("id").text,nodes[i].selectSingleNode("Title").text,objsl)
}
//判断是否有返回数据
if (nodes.length==0)
{
slremove()
addsl("-1","无数据",objsl)
}
}
else
{
slremove()
addsl("-1","抱歉,装载数据失败。原因:" + xh.statusText,objsl)
}
}
}
//清空select
function slremove()
{
var ln = objsl.options.length;
while (ln--)
{
objsl.options[ln] = null;
}
}
//向select中增加数据
function addsl(svalue,stext,tbox)
{
var i = 0;
if(stext.value != "")
{
var no = new Option();
no.value = svalue;
no.text = stext;
tbox.options[tbox.options.length] = no;
}
}