随笔-2  评论-4  文章-0  trackbacks-0

最新评论

我用的是数据库版的省市县
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;
}
}
function httpRequest(method,data,URL)
{
var Http=null;
var xmlArray=["MSXML3.XMLHTTP","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
for(var i=0;i<xmlArray.length;i++){
try{
//ie 6 MSXML2
Http=new ActiveXObject(xmlArray[i]);
}catch(e){}
if(Http!=null){
return;
}
}
//var Http = new ActiveXObject("Microsoft.XMLHTTP"); //建立XMLHTTP对象
Http.open(method,URL,false);
Http.send(data);
var response = Http.responseText;
delete(Http);
return response;
}
function XMLDatastore()
{
//类变量
var xmlDoc;
var errorInfo;
var listOfNodes;

//类方法
this.init = init;
this.createNew = createNew;
this.load = load;
this.loadXML = loadXML;
this.rowCount = rowCount;
this.colCount = colCount;
this.getItem = getItem;
this.getItemByName = getItemByName;
this.insertRow = insertRow;
this.addColumn = addColumn;
this.setItem = setItem;
this.setItemByName = setItemByName;
this.getXML = getXML;
this.getErrorInfo = getErrorInfo;
this.destroy = destroy;

function init()
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
}

function createNew()
{
root = xmlDoc.createElement("rows");
xmlDoc.appendChild(root);
listOfNodes = xmlDoc.documentElement.childNodes;
}


function load(fileName)
{
var result = false;

xmlDoc.load(fileName);

if(xmlDoc.parseError !=0)
errorInfo = xmlDoc.parseError.reason;
else
{
result = true;
listOfNodes = xmlDoc.documentElement.childNodes;
}

return result;
}

function loadXML(xml)
{
var result = false;

xmlDoc.loadXML(xml);

if(xmlDoc.parseError !=0)
errorInfo = xmlDoc.parseError.reason;
else
{
result = true;
listOfNodes = xmlDoc.documentElement.childNodes;
}

return result;
}

function rowCount()
{
return listOfNodes.length;
}

function colCount()
{
var cols = 0;

if(rowCount()>0)
cols = listOfNodes.item(0).childNodes.length;

return cols;
}

function getItem(rowNo,colNo)
{
var node = listOfNodes.item(rowNo - 1);
node = node.childNodes.item(colNo - 1);

return node.text;
}

function getItemByName(rowNo,colName)
{
//var listOfCols = xmlDoc.documentElement.getElementsByTagName(colName);
//var node = listOfCols.item(rowNo-1);
//return node.text;

var node = listOfNodes.item(rowNo - 1);
var rowNodes = node.childNodes;
var i;
for(i=0;i<rowNodes.length;i++)
{
node = rowNodes.item(i);
if(node.tagName == colName)
return node.text;
}

}

function insertRow(rowNo)
{
var rowElement = xmlDoc.createElement("row");

if(rowNo == -1)
{
xmlDoc.documentElement.appendChild(rowElement);
rowNo = rowCount();
}
else
{
xmlDoc.documentElement.insertBefore(rowElement,listOfNodes.item(rowNo - 1));
}

return rowNo;
}

function addColumn(rowNo,colName,value)
{
var colElement = xmlDoc.createElement(colName);
var node = listOfNodes.item(rowNo - 1);
node.appendChild(colElement);
node.lastChild.text = value;
}

function setItem(rowNo,colNo,value)
{
var node = listOfNodes.item(rowNo - 1);
node = node.childNodes.item(colNo - 1);

return node.text = value;
}

function setItemByName(rowNo,colName,value)
{
var listOfCols = xmlDoc.documentElement.getElementsByTagName(colName);
var node = listOfCols.item(rowNo-1);

return node.text = value;
}

function getXML()
{
return xmlDoc.transformNode(xmlDoc);
}

function getErrorInfo()
{
return errorInfo;
}

function destroy()
{
delete(xmlDoc);
}
}
我这个杂不行啊?
不错。怎么没人留言?

天气预报

流量统计

Free Counter
Free Web

日历

昵称:Dicman
园龄:5年7个月
粉丝:0
关注:0
<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

搜索

 
 

常用链接

文章分类

最新评论