挑战性的问题:三级SELECT选择

redhatcn 2003-01-03 12:23:00
二级效果如下:http://9839.com/test/js.htm

现在要实现三级选择,比如选择了“湖南”-》“湘潭”,还可以继续让用户选择“湘潭”市下面的各个“乡镇”之类的小地方!

请高手们试试,给100分!
...全文
34 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuzxit 2003-01-03
  • 打赏
  • 举报
回复
<body>
<div align="center">
<form name="isc">
<table border="0" cellspacing="0" cellpadding="0">
<tr align="center">
<td nowrap height="11">
<select name="example" size="1" onChange="redirect(this.options.selectedIndex)">
<option selected>◤建站?源网◢</option>
<option>★CGI程序??</option>
<option>★FLASH欣?</option>
</select>
<select name="stage2" size="1" onChange="redirect1(this.options.selectedIndex)">
<option value=" " selected></option>')
<option value=" " selected>◤------第二?菜?------◢</option>
<option value=" " selected>◤------第二?菜?------◢</option>
</select>
<select name="stage3" size="1" onChange="redirect2(this.options.selectedIndex)">
<option value=" " selected></option>')
<option value=" " selected>◤------第三?菜?------◢</option>
<option value=" " selected>◤------第三?菜?------◢</option>
</select></table>
</form></div>
<script language="JavaScript">
<!--
var groups=document.isc.example.options.length
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()

group[0][0]=new Option("----第二?菜?----"," ");

group[1][0]=new Option("」第一?"," ");
group[1][1]=new Option("」第二?","47");
group[1][2]=new Option("」第三?","46");
group[1][3]=new Option("」第四?","45");

group[2][0]=new Option("」第一?"," ");
group[2][1]=new Option("」第二?","115");
group[2][2]=new Option("」第三?","116");

var temp=document.isc.stage2


function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
temp.options[0].selected=true
redirect1(0)
}



var secondGroups=document.isc.stage2.options.length
var secondGroup=new Array(groups)
for (i=0; i<groups; i++) {
secondGroup[i]=new Array(group[i].length)
for (j=0; j<group[i].length; j++) {
secondGroup[i][j]=new Array() }}

secondGroup[0][0][0]=new Option("----第三?菜?----"," ");
secondGroup[1][0][0]=new Option("----第三?菜?----"," ");
secondGroup[1][1][0]=new Option("」 第一?"," ");
secondGroup[1][1][1]=new Option("」 第一?","../cgi/pagenew8.htm");
secondGroup[1][1][2]=new Option("」 第一?","../cgi/pagenew8.htm");
secondGroup[1][1][3]=new Option("」 第一?","../explain/route.htm");

secondGroup[1][2][0]=new Option("」第三?"," ");
secondGroup[1][2][1]=new Option("第二?","../cgi/pagenew7.htm");
secondGroup[1][2][2]=new Option("第二?","../cgi/pagenew7.htm");
secondGroup[1][2][3]=new Option("第二?","../explain/route.htm");

secondGroup[1][3][0]=new Option("」第四?"," ");
secondGroup[1][3][1]=new Option("第三?","../cgi/pagenew15.htm");
secondGroup[1][3][2]=new Option("第三?","../explain/route.htm");

secondGroup[2][0][0]=new Option("----第三?菜?----"," ");
secondGroup[2][1][0]=new Option("」第三?"," ");
secondGroup[2][1][1]=new Option("」第三?(1)","../pictures/cartoon/1.htm");
secondGroup[2][1][2]=new Option("」第三?(2)","../pictures/cartoon/2.htm");
secondGroup[2][1][3]=new Option("」第三?(3)","../pictures/cartoon/3.htm");

secondGroup[2][2][0]=new Option("」第四?"," ");
secondGroup[2][2][1]=new Option("第三?l(1)","../pictures/email/1.htm");
secondGroup[2][2][2]=new Option("第三?(2)","../pictures/email/1.htm");

var temp1=document.isc.stage3
function redirect1(y){
for (m=temp1.options.length-1;m>0;m--)
temp1.options[m]=null
for (i=0;i<secondGroup[document.isc.example.options.selectedIndex][y].length;i++){
temp1.options[i]=new Option(secondGroup[document.isc.example.options.selectedIndex][y][i].text,secondGroup[document.isc.example.options.selectedIndex][y][i].value)
}
temp1.options[0].selected=true
}

function redirect2(){
window.open(temp1.value,"","toolbar=no,location=yes,directories=no,status=no,menubar=no,scrollbars=yes, resizable=yes,copyhistory=yes,width=700,height=450");
}
//-->
</script>
</body>
yonghengdizhen 2003-01-03
  • 打赏
  • 举报
回复
其实能做二级联动了,作为三级联动应该不难..
无非就是在第二级的基础上再加一个事件..
(使用xml数据岛可以简化这种数据的组织结构,并充分利用xml模式选择功能)
如果使用js定义三维数组的话,需要自己实现数组查找算法.
ufolala 2003-01-03
  • 打赏
  • 举报
回复
真的很有挑战性~~~
blues-star 2003-01-03
  • 打赏
  • 举报
回复
解决了我怎么还能看到?

faint。
sportdog 2003-01-03
  • 打赏
  • 举报
回复
这写地点是从数据库里取吗?
zxhong 2003-01-03
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1083/1083608.xml?temp=.1677667
方工 2003-01-03
  • 打赏
  • 举报
回复
试试搜索一下,此类问题非常多。
ssm1226 2003-01-03
  • 打赏
  • 举报
回复
http://www20.brinkster.com/hrj01/select/select.htm
http://www20.brinkster.com/hrj01/select/select1.htm

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧