不需要!
先把省份的省出来,用onchange提交一个action,这个action里肯定是可以得到这个省份的名称的,根据这个省份的名称,去查询城市,查询后放到一个list里,在返回到刚才的那个页面 就可以了.actionform会保存先前选择的那个省份的。

解决方案 »

  1.   

    给你两个简单的例子
    http://ben.golvon.com/MainServlet?funcName=bbs_into2&service=detail&b=DV&d=web&seqNo=15579
      

  2.   

    樓上的,我就是用AJAX沒做出來啊。。
    哪位幫我看一看啊。。都二天了還沒解決。
    有位仁兄幫俺做了。還是運行不了。。
    這也是俺發的貼:
    http://www.javatx.cn/clubPage.jsp?ccStyle=0&tID=273&ccID=9
      

  3.   

    OH..可我們公司外部E_MAIL收不到啊。
      

  4.   

    樓上的仁兄,能否貼出來?
    另煩請發個例子給我:[email protected],我如果沒弄出來俺就下班回去看啊。
      

  5.   

    html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>MyHtml.html</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page"><!--<link rel="stylesheet" type="text/css" href="./styles.css">--></head>
    <script type="text/javascript">
    function getResult(stateVal) {
            var url = "servlet/SelectCityServlet?state="+stateVal; 
            if (window.XMLHttpRequest) { 
                    req = new XMLHttpRequest(); 
            }else if (window.ActiveXObject) { 
                    req = new ActiveXObject("Microsoft.XMLHTTP"); 
            } 
            if(req){ 
                    req.open("GET",url, true); 
                    req.onreadystatechange = complete; 
                    req.send(null); 
            } 

    function complete(){
            if (req.readyState == 4) { 
                    if (req.status == 200) { 
                            var city = req.responseXML.getElementsByTagName("city"); 
                            alert(city.length);
                            var str=new Array();
                            for(var i=0;i<city.length;i++){
                                    str[i]=city[i].firstChild.data;
                            }
                            alert(document.getElementById("city"));
                            buildSelect(str,document.getElementById("city"));
                    }
            }
    }
    function buildSelect(str,sel) {
            sel.options.length=0;
            for(var i=0;i<str.length;i++) {
                    sel.options[sel.options.length]=new Option(str[i],str[i])
            }
    }
    function test(){
            alert("test");
    }
    </script>
    <body>
    不变的静止内容
    <BR />
    <BR />
    <select name="state" onChange="getResult(this.value)">
    <option value="">请选择</option>
    <option value="zj">浙江</option>
    <option value="zs">江苏</option>
    </select>
    <select id="city"></select>
    <BR />
    <BR />
    不用重新刷新
    </body>
    </html>
      

  6.   

    Servlet代码:package com.stephen.servlet;import java.io.IOException;
    import java.io.PrintWriter;import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;/**
     * @author stephen
     * 
     * TODO To change the template for this generated type comment go to Window -
     * Preferences - Java - Code Style - Code Templates
     */
    public class SelectCityServlet extends HttpServlet { public SelectCityServlet() {
    super();
    } public void destroy() {
    super.destroy();
    } public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    response.setContentType("text/xml");
    response.setCharacterEncoding("UTF-8");
    response.setHeader("Cache-Control", "no-cache");
    String state = request.getParameter("state");
    StringBuffer sb = new StringBuffer("<state>");
    if ("zj".equals(state)) {
    sb.append("<city>杭州</city><city>湖州</city>");
    } else if ("zs".equals(state)) {
    sb.append("<city>南京</city><city>扬州</city><city>苏州</city>");
    }
    sb.append("</state>");
    PrintWriter out = response.getWriter();
    out.write(sb.toString());
    out.close();
    }}
      

  7.   

    一个Javascript的例子(转载)<HTML>
    <HEAD>
    <TITLE>New Document</TITLE>
    <style type="text/css">
    body{font-family:Courier New, Courier}
    select{font-size:8pt;font-family:Courier New, Courier}
    input{font-size:8pt;font-family:Courier New, Courier}
    </style>

    <SCRIPT LANGUAGE="JavaScript">
    var Name=new Array(3);
    var Value=new Array(3);
    Name[1]=new Array{"Zosatapo1","Zosatapo2","Zosatapo3","Zosatapo4"};
    Name[2]=new Array("Reic Yang1","Reic Yang2","Reic Yang3","Reic Yang4"); function change()
    {
    selIndex = document.all("test").selectedIndex;
    if(document.all("test").selectedIndex==0)
    return;
    for(i=document.all("test").options.length-1;i>-1;i--)
    {
    document.all("test").options.remove(i);
    }
    for(i=0;i<Name[selIndex].length;i++)
    {
    document.all("test").options.add(new Option(Name[selIndex][i],"name"+i));
    }
    } function changeEx(){
    for(i=document.all("sub").options.length;i>0;i--)
    {
    document.all("sub").options.remove(i-1);
    } if(document.all("main").selectedIndex==0){
    document.all("sub").options.add(new Option("==========","-1"));
    return;
    } selIndex=document.all("main").selectedIndex;
    for(i=0;i<Name[selIndex].length;i++)
    {
    document.all("sub").options.add(new Option(Name[selIndex][i],"name"+i));
    } } function reset(){
    for(i=document.all("test").options.length-1;i>-1;i--)
    {
    document.all("test").options.remove(i);
    }
    document.all("test").options.add(new Option("==========","-1"));
    document.all("test").options.add(new Option("Zosatapo","1"));
    document.all("test").options.add(new Option("Reic Yang","2"));
    } function display(object){
    alert(object.options[object.selectedIndex].text+" "+object.options[object.selectedIndex].value);
    }
    </SCRIPT>
    </HEAD> <BODY BGCOLOR="#FFFFFF">
    First Sample:
    <br>
    <font color="blue">All items will change After you Selected!</font>
    <br>
    <SELECT id="test" onchange="change();">
    <option value="-1" selected>
    ==========
    <option value="1">
    Zosatapo
    <option value="2">
    Reic Yang
    </SELECT>
    <input name="Reset Select" type="button" value="Reset Select" onclick="reset();">
    <br>
    <br> Second Sample:
    <br>
    <font color="blue">You selected Item in Main Select will change the Sub select Content!</font>
    <br>
    Main Select:
    <SELECT id="main" onchange="changeEx();">
    <option value="-1" selected>
    ==========
    <option value="1">
    Zosatapo
    <option value="2">
    Reic Yang
    </SELECT> Sub Select:
    <SELECT id="sub" onchange="display(this);">
    <option value="-1" selected>
    ==========
    </SELECT>
    <br>
    <br>
    </BODY>
    </HTML>
      

  8.   

    javascript是可以的,但是一次性必须把数据加载完毕,如果数据量非常大的话,会很慢的,ajax的优点就在于可以动态加载数据