大家帮我看看下面的代码哪里除了问题?个人觉得可能是LoadClassXml.aspx有问题,因为我把<body onload="talktoServer('../Action/LoadClassXml.aspx','-1');改成
<body onload="talktoServer('../1.xml','-1');是可以正常工作的。
=====================================================
<script language="javascript" type="text/javascript">
var req;
var sel1;
function talktoServer(url,s1){
sel1 = s1;
req = newXMLHTTPRequest();
var callbackHandler = getReadyStateHandler;//注册客户端回调函数
req.onreadystatechange = callbackHandler;
req.open("POST",url,true);
req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//对url进行编码
req.send(null);}
//创建一个xmlhttprequest对象
function newXMLHTTPRequest(){
var xmlreq = false; //定义一个xmlhttprequest变量,初始值为false
if(window.XMLHTTPRequest) {
xmlreq = new XMLHTTPRequest(); //如果支持XMLHTTPRequest,则创建
} else if(window.ActiveXObject) {
try {
xmlreq = new ActiveXObject("Msxml2.XMLHTTP"); //IE高版本中创建XMLHTTP对象
} catch (e1) { //创建第一个XMlHTTP失败
try {
xmlreq = new ActiveObject("Microsoft.XMLHTTP"); //IE低版本中创建XMLHTTP
} catch (e2) {
}
}
}
return xmlreq;
}
//服务器回调函数
function getReadyStateHandler(){ if(req.readyState ==4) { //已经加载
if(req.status == 200) { //返回成功
var obj = document.getElementById("class1");
var obj2 = document.getElementById("class2");
var xmlDoc = req.responseXML;
var node = xmlDoc.documentElement; //alert(node);node为空
alert(node);
if(sel1!="-1")
{
obj2.options.length = 0;
obj2.add(new Option("二级分类","-1"));
}
for(var i=0;i<=node.childNodes.length-1;i++)
{
//添加一个选项
if(node.childNodes(i).childNodes(2).text=="0" && sel1=="-1")
{
obj.add(new Option(node.childNodes(i).childNodes(1).text,node.childNodes(i).childNodes(0).text));
}
if(sel1==node.childNodes(i).childNodes(2).text)
{
obj2.add(new Option(node.childNodes(i).childNodes(1).text,node.childNodes(i).childNodes(0).text));
}
}
} }
}
</script>
<body onload="talktoServer('../Action/LoadClassXml.aspx','-1');
==========================================================
../Action/LoadClassXml.aspx'
===========================================================
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="LoadClassXml.aspx.cs" Inherits="Action_LoadClassXml" %>
<%@ Import Namespace="System.Xml" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
XmlDocument d = new XmlDocument();
d.Load(Server.MapPath("../inc/xml/sale/message.xml"));
Response.ContentType = "text/xml";
Response.Charset = "gb2312";
Response.Write(d.OuterXml);
}
</script>
<body onload="talktoServer('../1.xml','-1');是可以正常工作的。
=====================================================
<script language="javascript" type="text/javascript">
var req;
var sel1;
function talktoServer(url,s1){
sel1 = s1;
req = newXMLHTTPRequest();
var callbackHandler = getReadyStateHandler;//注册客户端回调函数
req.onreadystatechange = callbackHandler;
req.open("POST",url,true);
req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//对url进行编码
req.send(null);}
//创建一个xmlhttprequest对象
function newXMLHTTPRequest(){
var xmlreq = false; //定义一个xmlhttprequest变量,初始值为false
if(window.XMLHTTPRequest) {
xmlreq = new XMLHTTPRequest(); //如果支持XMLHTTPRequest,则创建
} else if(window.ActiveXObject) {
try {
xmlreq = new ActiveXObject("Msxml2.XMLHTTP"); //IE高版本中创建XMLHTTP对象
} catch (e1) { //创建第一个XMlHTTP失败
try {
xmlreq = new ActiveObject("Microsoft.XMLHTTP"); //IE低版本中创建XMLHTTP
} catch (e2) {
}
}
}
return xmlreq;
}
//服务器回调函数
function getReadyStateHandler(){ if(req.readyState ==4) { //已经加载
if(req.status == 200) { //返回成功
var obj = document.getElementById("class1");
var obj2 = document.getElementById("class2");
var xmlDoc = req.responseXML;
var node = xmlDoc.documentElement; //alert(node);node为空
alert(node);
if(sel1!="-1")
{
obj2.options.length = 0;
obj2.add(new Option("二级分类","-1"));
}
for(var i=0;i<=node.childNodes.length-1;i++)
{
//添加一个选项
if(node.childNodes(i).childNodes(2).text=="0" && sel1=="-1")
{
obj.add(new Option(node.childNodes(i).childNodes(1).text,node.childNodes(i).childNodes(0).text));
}
if(sel1==node.childNodes(i).childNodes(2).text)
{
obj2.add(new Option(node.childNodes(i).childNodes(1).text,node.childNodes(i).childNodes(0).text));
}
}
} }
}
</script>
<body onload="talktoServer('../Action/LoadClassXml.aspx','-1');
==========================================================
../Action/LoadClassXml.aspx'
===========================================================
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="LoadClassXml.aspx.cs" Inherits="Action_LoadClassXml" %>
<%@ Import Namespace="System.Xml" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
XmlDocument d = new XmlDocument();
d.Load(Server.MapPath("../inc/xml/sale/message.xml"));
Response.ContentType = "text/xml";
Response.Charset = "gb2312";
Response.Write(d.OuterXml);
}
</script>
解决方案 »
- 怎样计算一个字符串公式的值?
- sqldatasource的命令
- 技术不是很通,如何带领一个5人WEB软件开发团队,大家给点意见啊!
- 后台给js级联select下拉框赋值问题
- 点击gridview取得该行列值(vb.net)
- cookie字符串问题(javascript) 【马上给分,在线等待】
- 控件实现!!!地址:http://93316.cn/test/
- 如何调试安装类(在做安装部署的时候)?谢谢!
- 怎么让textbox的id作为变量,以便在取得100个以上的textbox.text不累得半死,让循环语句完成?
- System.Data.OleDb.OleDbException: 未指定的错误
- 刚发现了控件,分享了,散分
- 使用母版页后客户端显示的id都变了,怎么办
你的这个文件有问题!没有生成XML格式的界面!!不然不能用responseXML来获取值!!
你直接运行LoadClassXml.aspx这个页面看看能不能生成XML?