谁有不用数据库做的二级级联菜单??急用~

melted 2005-11-09 09:12:12
我写了一个用JS掉用的,但好象有点问题~希望大家给看看~

如果你有现成的,希望给偶一个吧~谢了~


<script language="JavaScript">
<!--
var subcat = new Array();
subcat[0] = new Array('10','1','=1')
subcat[1] = new Array('10','2','=2')
subcat[2] = new Array('10','3','=3')
subcat[3] = new Array('10','4','=4')
subcat[4] = new Array('10','5','=5')
subcat[5] = new Array('10','6','=6')
subcat[6] = new Array('10','7','=7')
subcat[7] = new Array('10','8','=8')
subcat[8] = new Array('10','9','=9')
subcat[9] = new Array('10','10','=10')
subcat[10] = new Array('20','11','=11')
subcat[11] = new Array('20','12','=12')
subcat[12] = new Array('20','13','=13')
subcat[13] = new Array('20','14','=14')
subcat[14] = new Array('20','15','=15')
subcat[15] = new Array('20','16','=16')
subcat[16] = new Array('20','17','=17')
subcat[17] = new Array('20','18','=18')
subcat[18] = new Array('20','19','=19')
subcat[19] = new Array('20','20','=20')
function changeselect1(locationid)
{
document.form1.s2.length = 0; //初始化下拉列表 清空下拉数据
document.form1.s2.options[0] = new Option('==请选择==',''); //给第一个值
for (i=0; i<subcat.length; i++) //legth=20
{
if (subcat[i][0] == locationid) //[0] [1] 第一列 第二列
{document.form1.s2.options[document.form1.s2.length] = new Option(subcat[i][1], subcat[i][2]);} //建立option
//第一次 length=1 因为有==请选择==
//i=9时 length= 10 值有11个 因为从0数起 subcat[i][0] == locationid屏蔽了再写
}
}
//-->
</script>

<form name="form1" method="post" runat="server">
<p>
<select name="s1" onChange="changeselect1(this.value)">
<option>==请选择==</option>
<option value="10">1-10</option>
<option value="20">11-20</option>
</select>
</p>
<p>
<select name="s2" onChange="alert(this.value)">
<option>==请选择==</option>

</select>

</p>
</form>
...全文
146 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
melted 2005-11-11
  • 打赏
  • 举报
回复
呵呵~是我IE有问题!

我自己代码是正确的!
melted 2005-11-10
  • 打赏
  • 举报
回复
楼上的,好象你的也不可以实现啊~
昏死了!
diyager 2005-11-10
  • 打赏
  • 举报
回复
<script language="javascript">
function ChangeOptiontype(thisvalue){

var tmpdate='一级分类A,1#二级分类A-1,2#二级分类A-2,3#二级分类A-3,4#二级分类A-4,5#二级分类A-5,8#二级分类A-6,;一级分类B,6#二级分类B-1,7#二级分类B-2,;';

var pp = tmpdate.split(";");

for(var m=0;m<document.form1.pro_type2.options.length;m++) document.form1.pro_type2.options[m]=null;

for (var i=0; i<(pp.length-1); i++ ){
var tt=pp[i].split(",");
if(tt.length>=2){
for (var j=1; j<(tt.length-1); j++){
if(tt[0]==thisvalue){
var dd=tt[j].split("#");
document.form1.pro_type2.options[j]= new Option( dd[1], dd[0]);
}
}
}else{
for(var m=0;m<document.form1.pro_type2.options.length;m++) document.form1.pro_type2.options[m]=null;
}
document.form1.pro_type2.options[0]= new Option("=选择二级类别=","0");
}
document.form1.pro_type2.selectedIndex=0; //设置默认选项
}
</script>

<form name=form1>
<select name=por_type1 onChange="ChangeOptiontype(this.value);">
<option value="">=选择一级类别=</option>
<option value="一级分类A">一级分类A</option>
<option value="一级分类B">一级分类B</option>
</select>
<select name="pro_type2">
<option value="0">=选择二级类别=</option>
</select>
</form>
red_free 2005-11-10
  • 打赏
  • 举报
回复
用数组是正确的方向
不过这个写法我不喜欢。
上次看过一个经典的。
是否考虑用参数直接赋值给下标?
是否不要去指定select的长度
而是用add的方法加入。楼主的方法在好像不是很好
diyager 2005-11-10
  • 打赏
  • 举报
回复
搞吧,搞不定了再联系QQ5745027我传个静态的二级联动给你
melted 2005-11-10
  • 打赏
  • 举报
回复
我在第一个TAXTBOX选1到10 那相应的第二个TAXTBOX就应该是1.2.3.4.5.6.7.8.9.10.但现在好象不能够正确显示啊~
red_free 2005-11-10
  • 打赏
  • 举报
回复
通过tt测试,
不过楼主的代码也是经过了测试的。我没有发现楼主的代码有问题啊。
red_free 2005-11-10
  • 打赏
  • 举报
回复
<script language="JavaScript">
<!--
var subcat = new Array(new Array(),new Array());
var subcatValue = new Array(new Array(),new Array());
var i = 0,j=0,s=0;
//偷懒一下,原谅我用循环来赋值,这个赋值不具备普遍意义
for(j;j<=1;j++)
{
for(i=0;i<=9;i++)
{
if(j)
subcat[j][i] = Math.pow(10,j)+i+1;
else
subcat[j][i] = i+1;
subcatValue[j][i] = '=' + subcat[j][i].toString();
//document.write(subcat[j][i] + subcatValue[j][i]+'<br>');
}
}
function changeSelect1(intNum)
{
var intNum;
var objSelect = document.getElementById('s2');
var ii;
objSelect.length =1;
if(intNum >=0)
{

for(ii=0;ii<subcat[intNum].length;ii++)
{
var objOption = document.createElement("OPTION");
objOption.text=subcat[intNum][ii];
objOption.value = subcatValue[intNum][ii];
objSelect.add(objOption);
}
}
}

-->
</script>

<form name="form1" method="post" runat="server">
<p>
<select name="s1" onChange="changeSelect1(this.value)">
<option value="-1">==请选择==</option>
<option value="0">1-10</option>
<option value="1">11-20</option>
</select>
</p>
<p>
<select name="s2" id="s2" onChange="javascript:alert(this.value)">
<option>==请选择==</option>

</select>

</p>
</form>
zhuning73 2005-11-09
  • 打赏
  • 举报
回复
出现什么问题了!
melted 2005-11-09
  • 打赏
  • 举报
回复
不会吧~没有人知道??
melted 2005-11-09
  • 打赏
  • 举报
回复
ding ~

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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