父级index.jsp
                            <div >
                                <iframe name="list" src="a.jsp" style="width: 970px; height="0"
                                    frameborder="0" scrolling="yes" >
                                </iframe>
                            </div>
子页面a.jsp
<script language="javascript">
function check(){
parent.window.location.href="b.jsp";
return false;
}
</script>
     out.print("<FORM onsubmit=check() method=post>");
     //通过一个隐藏的表单,提交记录的id用于识别该记录
     out.print("<TD><INPUT type='hidden' name='id' value='"+rs.getInt(1)+"'>");
     out.print("<INPUT type='submit' value='更改' name='submit'></TD>");
     out.print("</FORM>");
父一级页面b.jsp
  String nid=request.getParameter("id");
现在就是父级的b.jsp里面得不到id值,
有什么办法能把a.jsp里面的ID值传给b.jsp呢

解决方案 »

  1.   

    在父页面设置一个隐藏的 input 然后用javaScript 

    window.parent.document.getElementById();
     这样获取的就是父页面的节点了。随意怎么操作都可以。
      

  2.   

    在父页面中这么写<input type="hidden"  id="A" name="A"/>
    在子页面中 window.parent.document.getElementById("A").value=yourValue; 
      

  3.   

    还是不行,我把index.jsp 加入如下代码,<input type="hidden"  id="A" name="A" value=6> 
    b.jsp中代码如下
     String nid=request.getParameter("A");
    out.print(nid);结果出来是null
    直接付值都不行,看来是这个传值方式错了,是不是有IFRAME的不能用getParameter方式来传值的。
      

  4.   

    iframe有发请求吗?没发请求,request哪里来的?还是上一个请求的,当然取不到。楼上已经说的很清楚了。用纯js就可以
      

  5.   

    父级index.jsp 
                                <div > 
                                    <iframe name="list" src="a.jsp" style="width: 970px; height="0" 
                                        frameborder="0" scrolling="yes" > 
                                    </iframe> 
                                </div> 
    子页面a.jsp 
    <script language="javascript"> 
    function check(){ 
    var mid=document.getElementById("nid").value; 
    parent.window.location.href="b.jsp?id="+mid;
    return false; 

    </script> 
        out.print(" <FORM onsubmit=check() method=post>"); 
        //通过一个隐藏的表单,提交记录的id用于识别该记录 
        out.print(" <TD> <INPUT type='hidden' name='nid' value='"+rs.getInt(1)+"'>"); 
        out.print(" <INPUT type='submit' value='更改' name='submit'> </TD>"); 
        out.print(" </FORM>"); 
    父级另一页面b.jsp 
      String nid=request.getParameter("id");
      out.print(nid);
    现在传值的问题已经解决了,但是打印出来的始终是第一条记录的ID,因为a.jsp中的显示是这样的
    记录号
    1   更改
    2   更改
    3   更改
    现在无论点击哪个更改,得到的ID号始终是1
    请高手帮忙答