高分求教---是高手的请进来关于数据库和下拉列表框连动的问题 thank you,但是不明确,谁能给出代码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用XML吧<script language="javascript">var xmlID = "xmlcmbtree";var cmbPrefix = "xmlcmb";var nMaxLevel = 3;var tblName = "tbl";function CreateList(nLevel){ var doc = document.all(xmlID).documentElement; var nodes, nIndex, node; nodes = doc.childNodes; for (var i=1; i < nLevel;i++) {nIndex = document.all(cmbPrefix + i).selectedIndex;node = nodes[nIndex];nodes = node.childNodes; } var cmb = document.all(cmbPrefix + nLevel); if (!cmb) { cmb = document.createElement("SELECT"); cmb.id = cmbPrefix + nLevel; cmb.onchange = new Function("ChangeSelection(" + nLevel + ")"); //document.body.appendChild(cmb); var cell = document.all(tblName).rows[1].insertCell(); cell.appendChild(cmb); cell = document.all(tblName).rows[0].insertCell(); var label = document.createElement("SPAN"); label.style.fontWeight = "bold"; label.style.color = "red"; label.innerHTML = nodes[0].nodeName + ":"; cell.appendChild(label); // document.body.insertBefore(label,cmb) } cmb.options.length = 0; for (i=0; i < nodes.length;i++) {var opt = new Option(nodes[i].getAttribute("text"),nodes[i].getAttribute("value"));cmb.options.add(opt); } ChangeSelection(nLevel);}function ChangeSelection(nLevel){ if (nLevel < nMaxLevel) CreateList(nLevel+1);}</script><body onload="CreateList(1);"><!-- 用JSP生成就可以了 !--><xml id="xmlcmbtree"><country><province text="Jiang Su" value="Jiang Su"> <city text="Nan Jing" value="Nan Jing"> <street text="Xin Jie Kou" value="Xin Jie Kou" /> <street text="Dong Jia Xiang" value="Dong Jia Xiang" /> </city> <city text="Su Zhou" value="Su Zhou"> <street text="Guan Qian Jie" value="Guan Qian Jie" /> <street text="Re Min Lu" value="Re Min Lu" /> </city></province><province text="Beijing" value="Beijing"> <city text="Beijing" value="Beijing"> <street text="Xin Jie Kou" value="Xin Jie Kou" /> <street text="Si Huan Lu" value="Si Huan Lu" /> <street text="Xue Yuan Lu" value="Xue Yuan Lu" /> </city></province><province text="Hei Bei" value="Hei Bei"> <city text="Shi Jia Zhuang" value="Shi Jia Zhuang"> <street text="Ren Min Lu" value="Ren Min Lu" /> </city></province></country></xml><table id="tbl" border="1" cellspacing="0" cellpadding="0""><tr></tr><tr></tr></table></body> 每次用JSP读取数据生成动态的XML?---根据不同选择生成还是预先就生成所有选项可惜我对XML了解甚少,还有什么好方法go on 用XML的做法是你可以一开始就读数据库把所有的可能的需要的记录都取出来生成一个XML,然后每次选择只需读这个XML即可,如果你的数据量不大,(你用下拉列表估计也不会有很多数据的),这个还是管用的。如果数据量大或者变化频繁,就还是每次取数据库吧,你选择第一个下拉列表,然后触发提交事件然后刷新本页,用提交的第一个列表值取数据库记录构成第二个列表等等……。事件处理是 <select ..... onChange="loadNewPage()">function loadNewPage(){.....form1.submit();....} 使用这种方法试试:页面做两个框架:fram1,fram2在fram1里放页面,fram2里放脚本并且不可见在fram1里的三个列表框使用用<div id=listn>当fram1里的第一个列表框改变内容时在fram2里执行一个list.asp文件,list.asp执行查询后返回第二个列表框中的数据,使用js把这些数据放在<div id=list2>中,使用的方法可以是parent.fram1.document.list2.innerHTML=.....或者使用删除添加列表项既可注意如果list1中改变数据,要查询两次,一次是list2中的数据改变,一次是list2中给定的默认值后list3中的数据改变。 zhpfaff说的比较可行,只是比较麻烦如果数据库中数据较多,一次查出放在隐藏frame里或者XML文件都不大可取。或许可以有实现同样功能的其他变通方法,比如用多个页面,提供radio按钮逐级提交。哪位有好的意见,请提出。同时我在Java版也开了一贴,http://www.csdn.net/expert/topic/716/716963.xml?temp=.8211328200分征求满意答案,多谢! http://www.csdn.net/Expert/TopicView1.asp?id=723099 秋水无恨,非常感谢你的帮助。我已经想了别的方法。不过你的建议仍很有用。你到这个帖子拿分。等你看到了,我再结贴。http://www.csdn.net/expert/topic/716/716963.xml?temp=.8211328 JavaScript的innerHTML问题 css实现图片上传显示圆角效果 找人解释这段JSP代码 高分求救对动态表格的计算问题, 二级联动下拉菜单的问题 问一个很常见的功能,但我还不会写代码。问问各位 有什么办法可以让客户端从浏览的网页中提取数据到本地数据库?重酬! 怎样动态修改一个按钮的属性 JavaScript的构造函数到底在哪里? var now = new Date() 哪个是啊? 引用了jQuery后,其他的JS不启作用,神马情况。。郁闷啊,,,, 为什么我的输入框无法reset?(关于.htc) 请问各位高手用什么工具开发JSCRIPT网页呀?
<script language="javascript">
var xmlID = "xmlcmbtree";
var cmbPrefix = "xmlcmb";
var nMaxLevel = 3;
var tblName = "tbl";
function CreateList(nLevel)
{
var doc = document.all(xmlID).documentElement; var nodes, nIndex, node;
nodes = doc.childNodes;
for (var i=1; i < nLevel;i++)
{
nIndex = document.all(cmbPrefix + i).selectedIndex;
node = nodes[nIndex];
nodes = node.childNodes;
} var cmb = document.all(cmbPrefix + nLevel);
if (!cmb)
{
cmb = document.createElement("SELECT");
cmb.id = cmbPrefix + nLevel;
cmb.onchange = new Function("ChangeSelection(" + nLevel + ")"); //document.body.appendChild(cmb);
var cell = document.all(tblName).rows[1].insertCell();
cell.appendChild(cmb);
cell = document.all(tblName).rows[0].insertCell(); var label = document.createElement("SPAN");
label.style.fontWeight = "bold";
label.style.color = "red";
label.innerHTML = nodes[0].nodeName + ":"; cell.appendChild(label); // document.body.insertBefore(label,cmb) } cmb.options.length = 0; for (i=0; i < nodes.length;i++)
{
var opt = new Option(nodes[i].getAttribute("text"),nodes[i].getAttribute("value"));
cmb.options.add(opt);
} ChangeSelection(nLevel);
}function ChangeSelection(nLevel)
{
if (nLevel < nMaxLevel)
CreateList(nLevel+1);
}</script>
<body onload="CreateList(1);">
<!-- 用JSP生成就可以了 !-->
<xml id="xmlcmbtree">
<country>
<province text="Jiang Su" value="Jiang Su">
<city text="Nan Jing" value="Nan Jing">
<street text="Xin Jie Kou" value="Xin Jie Kou" />
<street text="Dong Jia Xiang" value="Dong Jia Xiang" />
</city>
<city text="Su Zhou" value="Su Zhou">
<street text="Guan Qian Jie" value="Guan Qian Jie" />
<street text="Re Min Lu" value="Re Min Lu" />
</city>
</province>
<province text="Beijing" value="Beijing">
<city text="Beijing" value="Beijing">
<street text="Xin Jie Kou" value="Xin Jie Kou" />
<street text="Si Huan Lu" value="Si Huan Lu" />
<street text="Xue Yuan Lu" value="Xue Yuan Lu" />
</city>
</province>
<province text="Hei Bei" value="Hei Bei">
<city text="Shi Jia Zhuang" value="Shi Jia Zhuang">
<street text="Ren Min Lu" value="Ren Min Lu" />
</city>
</province>
</country>
</xml>
<table id="tbl" border="1" cellspacing="0" cellpadding="0"">
<tr></tr>
<tr></tr>
</table>
</body>
可惜我对XML了解甚少,还有什么好方法
go on
.....
form1.submit();
....
}
页面做两个框架:fram1,fram2
在fram1里放页面,fram2里放脚本并且不可见
在fram1里的三个列表框使用用<div id=listn>
当fram1里的第一个列表框改变内容时在fram2里执行一个list.asp文件,
list.asp执行查询后返回第二个列表框中的数据,使用js把这些数据放在<div id=list2>中,使用的方法可以是parent.fram1.document.list2.innerHTML=.....
或者使用删除添加列表项既可注意如果list1中改变数据,要查询两次,一次是list2中的数据改变,一次是list2中给定的默认值后list3中的数据改变。
或许可以有实现同样功能的其他变通方法,比如用多个页面,提供radio按钮逐级提交。哪位有好的意见,
请提出。同时我在Java版也开了一贴,http://www.csdn.net/expert/topic/716/716963.xml?temp=.8211328
200分征求满意答案,多谢!
你到这个帖子拿分。
等你看到了,我再结贴。
http://www.csdn.net/expert/topic/716/716963.xml?temp=.8211328