<html>
<BODY>
<SELECT NAME="s1"><option>&ETH;è&Ograve;&ordf;JavaScript&sup2;&Aring;&Auml;&Uuml;&Otilde;&yacute;&Egrave;·&Iuml;&Ocirc;&Ecirc;&frac34;</SELECT>
<SELECT NAME="s2"></SELECT>
<SELECT NAME="s3"></SELECT>
<SELECT NAME="s4"></SELECT><SCRIPT LANGUAGE="JavaScript">
<!--//&Ntilde;&iexcl;&Ocirc;&ntilde;&iquest;ò&micro;&Auml;&Atilde;&ucirc;×&Ouml;
selector = [ "s1", "s2", "s3", "s4" ];//&Ntilde;&iexcl;&Ocirc;&ntilde;&Iuml;&icirc;: "&Atilde;&ucirc;×&Ouml;", "&Ouml;&micro;", ×&Oacute;&Ntilde;&iexcl;&Ocirc;&ntilde;
menu = [
"&micro;&Oslash;&Ccedil;ò","1",
 [
 "&Ouml;&ETH;&sup1;ú","86",
  [
  "±±&frac34;&copy;","BJ",
   [
   "--","1",null
   ],
  "&Euml;&Auml;&acute;¨","SC",
   [
   "&sup3;&Eacute;&para;&frac14;","28",null,
   "&Agrave;&Ouml;&Eacute;&frac12;","",null,
   "&Aring;&Ecirc;&Ouml;&brvbar;&raquo;¨","",null,
   "×&Ocirc;&sup1;±","",null,
   "&micro;&Acirc;&Ntilde;&ocirc;","",null,
   "&Atilde;à&Ntilde;&ocirc;","",null
   ]
  ],
 "&Atilde;×&sup1;ú","1",
  [
  "&frac14;&Oacute;&Agrave;&ucirc;&cedil;&pound;&Auml;á&Ntilde;&Ccedil;","CA",
   [
   "&frac34;&Eacute;&frac12;&eth;&Eacute;&frac12;","1",null,
   "&Acirc;&aring;&Eacute;&frac14;í&para;","2",null
   ],
  "&raquo;&ordf;&Ecirc;&cent;&para;&Ugrave;","WA",
   [
   "&Icirc;÷&Ntilde;&Aring;&Iacute;&frac14;","seattle",null
   ]
  ]
 ],
"&raquo;&eth;&ETH;&Ccedil;","2",
 [
 "&acute;ó&Iuml;&iquest;&sup1;&Egrave;","86",
  [
  "&ETH;&iexcl;&Eacute;&frac12;&Ccedil;&eth;","BJ",
   [
   "A&micro;&Oslash;&Ccedil;&oslash;","28",null,
   "B&micro;&Oslash;&Ccedil;&oslash;","",null,
   "C&micro;&Oslash;&Ccedil;&oslash;","",null
   ]
  ]
 ]
];
function wizz(level)
{
 if( level == 0 )
  a = menu;
 else
 {
  str = "menu";
  for( i=0; i<level; i++ )
   str += "[" + (document.all[selector[i]].selectedIndex * 3 + 2)  + "]";
  a = eval(str);
 }
 if( a == null ) return;
 
 s = document.all[selector[level]];
 i = s.length;
 while( i > 0 ) s.options[--i] = null;
 while( i < Math.floor(a.length/3) )
  s.options[i] = Option( a[i*3], a[i++*3+1] );
 s.onchange = Function("wizz(" + (level+1) + ")");
 wizz(level+1);
}wizz(0);
//-->
</SCRIPT>
</BODY>
</HTML>

解决方案 »

  1.   

    怎么事乱码 重来<html>
    <BODY>
    <SELECT NAME="s1"><option>需要JavaScript才能正确显示</SELECT>
    <SELECT NAME="s2"></SELECT>
    <SELECT NAME="s3"></SELECT>
    <SELECT NAME="s4"></SELECT><SCRIPT LANGUAGE="JavaScript">
    <!--//选择框的名字
    selector = [ "s1", "s2", "s3", "s4" ];//选择项: "名字", "值", 子选择
    menu = [
    "地球","1",
     [
     "中国","86",
      [
      "北京","BJ",
       [
       "--","1",null
       ],
      "四川","SC",
       [
       "成都","28",null,
       "乐山","",null,
       "攀枝花","",null,
       "自贡","",null,
       "德阳","",null,
       "绵阳","",null
       ]
      ],
     "米国","1",
      [
      "加利福尼亚","CA",
       [
       "旧金山","1",null,
       "洛杉矶","2",null
       ],
      "华盛顿","WA",
       [
       "西雅图","seattle",null
       ]
      ]
     ],
    "火星","2",
     [
     "大峡谷","86",
      [
      "小山丘","BJ",
       [
       "A地区","28",null,
       "B地区","",null,
       "C地区","",null
       ]
      ]
     ]
    ];
    function wizz(level)
    {
     if( level == 0 )
      a = menu;
     else
     {
      str = "menu";
      for( i=0; i<level; i++ )
       str += "[" + (document.all[selector[i]].selectedIndex * 3 + 2)  + "]";
      a = eval(str);
     }
     if( a == null ) return;
     
     s = document.all[selector[level]];
     i = s.length;
     while( i > 0 ) s.options[--i] = null;
     while( i < Math.floor(a.length/3) )
      s.options[i] = Option( a[i*3], a[i++*3+1] );
     s.onchange = Function("wizz(" + (level+1) + ")");
     wizz(level+1);
    }wizz(0);
    //-->
    </SCRIPT>
    </BODY>
    </HTML>
      

  2.   

    http://expert.csdn.net/Expert/topic/1470/1470801.xml?temp=.5280573
      

  3.   

    写在JSP文件中,不是很规范,给你看个意思<script language="JavaScript">
      //定义一个对象
    function Exch(name,exch_id,area_id,area_name) {
        this.name = name;
    this.exch_id = exch_id;
    this.area_id = area_id;
    this.area_name = area_name;
      }
      //从数据库中取内容,初始化一个二维数组
      var exchs = new Array();
      <%
    SQL sql = null;
      SQL subSql = null;
      try {
        sql = SQL.getInstance();
    subSql = SQL.getInstance();
    sql.select("select area_id,area_name from sys_area");
    sql.beforeFirst();
    int i=0;
    while(sql.next()) {
    //用js初始化数组   
    out.println("var area"+sql.getResult("area_id")+"= new Array();");
      subSql.select("select name,exch_id from SYS_EXCH "
      +"where area_id="+Utility.q(sql.getResult("area_id")));
      subSql.beforeFirst();
      int n=0;
      while(subSql.next()) {
    //第二维     
    out.println("area"+sql.getResult("area_id")+"["+(n++)
    +"]=new Exch('"+subSql.getResult("name")+"','"
    +subSql.getResult("exch_id")+"','"+sql.getResult("area_id")+"','"+sql.getResult("area_name")+"');");
      }
      out.println("exchs["+(i++)+"]=area"+sql.getResult("area_id")+";");
    }

      }
      finally {
        if(sql!=null) sql.disconnect();
    if(subSql!=null) subSql.disconnect();
      }
      %>
      
      for(var i=0;i<exchs.length;i++) {
        for(var j=0;j<exchs[i].length;j++) {
      //alert(exchs[i][j].name+","+exchs[i][j].exch_id+","+exchs[i][j].area_id+","+exchs[i][j].area_name);
    }
      }
      //第一个选择框onchange事件调用
      function changeArea() {
        //alert("selectedIndex:"+document.addressListForm.department.selectedIndex);
    document.custSearchForm.cust_exch.length=0;
    var exchOfArea = exchs[document.custSearchForm.cust_area.selectedIndex];
    for(var i=0;i<exchOfArea.length;i++) {
      //alert(exchOfArea[i].name);
      document.custSearchForm.cust_exch.length++;
      document.custSearchForm.cust_exch.options[document.custSearchForm.cust_exch.length-1] = new Option(exchOfArea[i].name,exchOfArea[i].exch_id);
    }
      }
      </script>
      

  4.   

    假如我要把某个选项的值作为参数传到下一页?
    比如我需要"成都"
    于是我选择了成都一项:
    然后提交:
    在接受参数页里:String str=request.getParamter("s4")对吗?
    str=28 对吗?