在不同的页面之间用javascript传递参数

本文介绍了一种使用JavaScript在不同窗体间传递值的方法。具体实现是在proSpecAdd.jsp页面打开新窗口并调用ProSpecServlet进行查询,然后通过proTypeSearch.jsp返回所需值到初始页面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


涉及到的jsp页面为:proSpecSearch.jsp  proSpec.jsp   proSpecAdd.jsp  proTypeSearchi.jsp    proTypeSearch.jsp

解释:在proSpecAdd.jsp里,有这样的javascript方法,和调用javascript的事件处理函数,当你点查询时,就调用openwin()方法创建一个新的窗口。

function openwin() {
    window.open("ProSpecServlet?flag=searchi","newwindow", "height=400,width=500,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no");
}
function choose(str1,str2,str3,str4){
 document.all("PRODUCT_KIND").value=str1;
 document.all("PRODUCT_NAME").value=str2;
 document.all("PRODUCT_TYPE_NAME").value=str3;
 document.all("PRODUCT_TYPE_ID").value=str4;
}
<input type="button" name="Submit4" value="查询" onclick="openwin()">
 
     之后就转到了proTypeSearchi.jsp,这个页面里也有javascript方法,但没有调用方法的事件处理函数,当你点查询时,form表单提交,调用ProSpecServlet里的一个方法,之后转到proTypeSearch.jsp。

function closewin(str1,str2,str3,str4) {
 window.opener.choose(str1,str2,str3,str4);
 window.close();
}
</select> &nbsp;&nbsp; <input type="submit" name="Submit" value="查询">

     我们接着来看proTypeSearch.jsp里的javascript方法和调用方法的事件处理函数,当你点确定的时候,调用closewin方法,并给javascript传递了四个参数,这四个参数就是要在proSpecAdd.jsp页面里展现的值,在closewin方法内部调用它父窗口的choose方法,也就是proSpecAdd.jsp这个页面所打开的窗口,之后通过choose方法获得想要展现的值。

function closewin(str1,str2,str3,str4) {
 window.opener.choose(str1,str2,str3,str4);
 window.close();
}
<td align="center"><input type="button" name=submit value=确定 onclick="closewin('<%=dbr.getString("PRODUCT_KIND_NAME")%>','<%=dbr.getString("PRODUCT_NAME").trim()%>','<%=dbr.getString("PRODUCT_TYPE_NAME").trim()%>','<%=dbr.getString("PRODUCT_TYPE_ID").trim()%>')"></td>

     注意:window.opener这个窗口指的是当前窗口的父窗口,在这里指的是proSpecAdd.jsp这个页面打开的窗口,而不是proTypeSearchi.jsp这个页面打开的窗口,
           这个proTypeSearchi.jsp页面和proTypeSearch.jsp页面打开的是同一个窗口,只是显示的内容不一样罢了。
    现在要理解好窗口的概念,和页面是不一样的,一个窗口可能代表多个页面。

     本例子的实质:用javascript在不同页面之间传值。
     首先在proTypeSearch.jsp页面里,通过后台的业务逻辑方法,把想要传的值检索出来,并在页面里获得这个值,
     然后关闭当前窗口,调用closewin()方法,在这个方法内部掉用父窗口的choose方法,并把想要传的值,传递给
     choose方法,之后在父窗口的页面里的choose方法内接收传递过来的值。--就是这个过程!

     注意:本例中proTypeSearchi.jsp页面里的closewin();方法可以去掉,因为proTypeSearch.jsp页面里的closewin()方法调用的是
           proSpecAdd.jsp页面里的choose方法,但proTypeSearch.jsp页面里的closewin()方法和proSpecAdd.jsp页面里的choose方法,去掉哪个,这个传值都不能成功。


     注意:本例中最应该注意的就是窗口的概念!! 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值