小弟刚开始做JSP,做了个简单的框架页面,顶部(top.jsp)页面:负责从下拉列表中选择条件,然后点击按钮。下部(DBtest.jsp)页面:负责构造一个含顶部传来的参数的sql,查询数据库。问题:1、顶部页面点击按钮后不刷新(即:下拉列表保持选中的item不变);2、下部页面如何获得顶部页面传来的参数?
框架代码:
<frameset rows="80,*" frameborder="no" border="0" framespacing="0">
  <frame src="top.jsp" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" title="topFrame" />
  <frame src="DBtest.jsp?param=<%=request.getParameter("ZYDM")%>" name="mainFrame" id="mainFrame" title="mainFrame" />
</frameset>
<noframes><body>
</body>
</noframes></html>
其中:ZYDM 是下拉列表的name;
top.jsp代码:
<jsp:useBean id="DBbean" class="dataBase.DBBean" />
<body>  
<form action="" method="post" name="qrysel" id="qrysel">
  <label>
  <select name="ZYDM" onchange="change();">
  <option value="">全部</option>
  <%   
   DBbean.OpenConn("sipc","sipc");
   String sql1 = "select * from cm004 order by xh";
   ResultSet rs1 = DBbean.exeQuery(sql1);
   while(rs1.next()){%>   
   <option value="<%=rs1.getString(2)%>"><%=rs1.getString(3)%></option>
   <%}%>
  </select>
  </label>  
  <label>
  <input type="submit" name="button"  value="提交" />
  </label>  
</form>
</body>
请各位指点!

解决方案 »

  1.   

    取得值 然后 request.setAttribute("",value);或者放到一个hidden域中,然后通过request.getParameter(“value”)  取得该值。
      

  2.   

    框架也算是同一个页面么?包括top.jsp和DBtest.jsp两个页面的啊。
      

  3.   

    request.getParameter(ZYDM);在DBtest.jsp这样获得
      

  4.   

    输出了,没有变化,好像是DBtest.jsp页面没有得到刷新。
    楼上的,给个MSN吧,这样交流有点慢啊,谢谢啊
    我的是:[email protected]
      

  5.   

    button click:
    -----------------------
    var param = parent.frames["topFrame"].formName.fieldName.value;
    parent.frames["mainFrame"].location.href = 'DBtest.jsp?param=' + param;
    你去了解一下frameset之间的数据获取方法,使用js。
    以及如何去改变一个frame的src,让他跳转到你指定的页面。
    上面的代码是个大概意思。
      

  6.   

    新的问题,如何刷新下部页面,而top页面不刷?
      

  7.   


    这个要用ajxa了或者用HTML的iframe框架。你先把JSP搞抻头再说吧。那是最基本的
      

  8.   

    用ajax做还是比较简单的!
    function doStart(ajaxRequest){
    var zydm= document.getElementById("ZYDM");
    ajaxRequest.addNameValuePair("zydm",zydm.value);//向后台传参数
    }
    function doEnd(ajaxRequest){
        var tmp=ajaxRequest.getXMLHttpRequestObject().responseXML.getElementsByTagName("Check");//ajax传回的值
        if(tmp[0].firstChild==null) return;
        message=tmp[0].firstChild.nodeValue;
        var messages = message.split("|");
        for(var i=0;i<messages.length-1;i++){
            var eles = messages[i].split(",");
                }

    action里这是传值过程了!没什么太多要写的!