当前页面: 开发资料首页 → J2EE 专题 → 问高手,怎么在jsp同一个页面内穿多个值?
问高手,怎么在jsp同一个页面内穿多个值?
摘要: 问高手,怎么在jsp同一个页面内穿多个值?
比如,我本来这么写的,用一个form,里面有三个下拉表
list.jsp
<body>
<form name="form" method="POST" action="list.jsp">
<select name="S1" width="50" size="1" onChange="document.form.submit()">
<option value="a1"> a1 </option>
<option value="b1"> b1 </option>
<select name="S2" width="50" size="1" onChange="document.form.submit()">
<option value="a2"> a2 </option>
<option value="b2"> b2 </option>
<select name="S3" width="50" size="1" onChange="document.form.submit()">
<option value="a3"> a3 </option>
<option value="b3"> b3 </option>
</form>
S1:<%=request.getParameter("S1")%>
S2:<%=request.getParameter("S2")%>
S3:<%=request.getParameter("S3")%>
</body>
当我把S1选到b1时候,S3和S2值自动跳回默认的a3和a2了,办法避免这个?或者有其他什么更好的在同一个页面里传多个用户输入值的办法?
设定一个BUTTON 按钮 ONCLICK 事件里面 DOCUMENT.FORMS[0].ACTION= **.JSP?A1=**&A2=**&A3=88;DOCUMENT.FORMS[0].SUBMIT();
不用onChange,在都选完后,点个按钮一起提交不就行了
用AJAX实现最简单,实时取数据,
HTML文件代码,
<head>
鋺鉤ヘ・- javascriptボマ゙シカチェカッイヒオ・ <script language="javascript" src="hpmenu.js"></script>
<form name="form1" method="post" action="">
<table width="90%" border="0" align="center" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC">
<tr bgcolor="F1F1F1">
<td height="24" colspan="2" align="center">鋺鉤ボマ゙シカチェカッイヒオ・-JavaScriptー・[HPMenu V1.0]</td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="12%" height="24" align="center">ヒ・ヤレ ヨ゙:</td>
<td><select name="zhou" id="zhou" onChange="Menu(this.form,1);">
<option value="" selected>-----ヌ・。ヤ・----</option>
<option value='ナキヨ゙'>ナキヨ゙</option>
<option value='ムヌヨ゙'>ムヌヨ゙</option>
<option value='キヌヨ゙'>キヌヨ゙</option>
<option value='エ゙'>エ゙</option>
<option value='アアテタヨ゙'>アアテタヨ゙</option>
<option value='トマテタヨ゙'>トマテタヨ゙</option>
</select></td>
</tr>
<tr bgcolor="#FFFFFF">
<td height="24" align="center">ケ奛。。。シメ:</td>
<td><select name="guo" id="select" onChange="Menu(this.form,2);">
<option value="" selected>-----ヌ・。ヤ・----</option>
</select></td>
</tr>
<tr bgcolor="#FFFFFF">
<td height="24" align="center">ウヌ。。。。ハミ:</td>
<td><select name="shi" id="select2" onChange="Menu(this.form,3);">
<option value="" selected>-----ヌ・。ヤ・----</option>
</select></td>
</tr>
<tr bgcolor="#FFFFFF">
<td height="24" align="center">オリ。。。。ヌ・</td>
<td><select name="qu" id="select3">
<option value="" selected>-----ヌ・。ヤ・----</option>
</select></td>
</tr>
<tr bgcolor="F1F1F1">
<td height="24" colspan="2" align="center"> </td>
</tr>
</table>
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="25" align="left">マツヤリオリヨキ」コヌ・羹簑・/a></td>
</tr>
<tr>
<td height="25" align="left">ヤレマ゚Demo」コヌ・羹簑・/a></td>
</tr>
<tr>
<td height="25" align="left">Bug キエタ。」コヌ・羹簑・/a></td>
</tr>
<tr>
<td height="25" align="left">チェマオキスハス」コMSN:hopesoft at msn.com</td>
</tr>
<tr>
<td height="25" align="left"> </td>
</tr>
<tr>
<td height="50" align="center">copyright(c) 2005 Hopesoft Studio </td>
</tr>
</table>
<script language="javascript">
Menu(eval("document.form1"),1)
</script>
</form>
JAVASCRIPT文件代码:
/*---------------------------------------------------------------------------*/
| Subject: JavaScriptネシカチェカッイヒオ・ |
| Version: 1.0 |
| Author: 鋺鉤。セhopesoft。ソ |
| FileName: HPMenu.js |
| Created: 2005-10-16 |
| LastModified: 2005-10-16 |
| Download: http://www.10090.com/Demo/hpmenu/HPMenu.rar |
| Explain: http://www.10090.com/Demo/ |
| Demo: http://www.10090.com/Demo/ |
| |
| You may use this code on your item |
| this entire copyright notice appears unchanged |
| and you clearly display a link to http://www.10090.com/ |
| |
|-----------------------------------------------------------------------------|
| MSN: hopesoft@msn.com QQ: 11318729 http://www.10090.com |
| Copyright (c) 2004-2005 HopeSoftStudio |
/*---------------------------------------------------------------------------*/
function Menu(theform,menuid) {
/*---------------------------------------------------------------------------*/
* 1.ア菽ソカィメ蝪。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 *
/*---------------------------------------------------------------------------*/。。。。。。。。。。
//カィメ蟯ヒオ・シカアenuClass,イヒオ・ウ、カネハラ餉enuLenArr,イヒオ・テ﨤ニハラ餉enuArr,マツシカイヒオ・ハラ餞ubMenuArr」ャイヒオ・IDハラ餉enuIdArr
var MenuClass,MenuLenArr,MenuArr,SubMenuArr,MenuIdArr
//カィメ蟾ヨク訒コsplitchar1,splitchar2
var splitchar1,splitchar2
//カィメ蠱ルハアハラ・ラモハラ・ハラ魑、カネ,
var arr,subarr,arrlen
/*---------------------------------------------------------------------------*/
* 2.ア菽ソクウヨオ。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 *
/*---------------------------------------------------------------------------*/
MenuArr=new Array()
MenuLenArr=new Array()
SubMenuArr=new Array()
MenuIdArr=new Array()
MenuArr[1]="ナキヨ゙|||ムヌヨ゙|||キヌヨ゙|||エ゙|||アアテタヨ゙|||トマテタヨ゙" //ヨ゙テ礰||...
MenuArr[2]="ナキヨ゙###オツケ僴||ナキヨ゙###キィケ僴||アアテタヨ゙###テタケ僴||アアテタヨ゙###シモトテエ||ムヌヨ゙###ヨミケ・ //ヨ゙テ・##ケ愑礰||...
MenuArr[3]="ヨミケ・##アアセゥ|||ヨミケ・##ノマコ」|||テタケ・##サェハ「カル|||テタケ・##ナヲヤシ|||オツケ・##ーリチヨ" //ケ愑・##ウヌハミテ礰||...
MenuArr[4]="アアセゥ###ウッム||ノマコ」###ミ・翩||ケ聊ン###フ・モヌ||ナヲヤシ###ツ・カルヌ・ //ケ愑・##ウヌハミテ礰||...
MenuIdArr[1]="zhou"
MenuIdArr[2]="guo"
MenuIdArr[3]="shi"
MenuIdArr[4]="qu"
MenuClass=4 //4シカイヒオ・
splitchar1="|||";
splitchar2="###";
/*---------------------------------------------------------------------------*/
* 3.ノ嵭ノハラ鬘。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 *
/*---------------------------------------------------------------------------*/
for(iii=1;iii<=MenuClass;iii++)
{
arr=MenuArr[iii].split(splitchar1);
len=arr.length;
subarr=new Array()
for (i=0;i
{
subarr[i]=arr[i].split(splitchar2);
}
len=subarr.length;
SubMenuArr[iii]=subarr
MenuLenArr[iii]=len
}
//============ク・トマツシカイヒオ・======================
var self,submenu,thislen,thisarr
//selfアセシカイヒオ・
//submenuラモイヒオ・
//theform:ヒレア昉・カヤマtype:object]
//menuid:アセシカイヒオ・シカアD」ャネ・シカイヒオ・ヤェ1
self=eval("document."+theform.name+"."+MenuIdArr[menuid])
submenu=eval("document."+theform.name+"."+MenuIdArr[menuid+1])
thislen=MenuLenArr[menuid+1]
thisarr=SubMenuArr[menuid+1]
submenu.length=0
submenu.options.add(new Option( "-----ヌ・。ヤ・----",""));
for (i=0;i<thislen;i++)
if (thisarr[i][0] == self.value)
{
submenu.options.add(new Option(thisarr[i][1], thisarr[i][1]));
}
}
submenu.options[0].selected=true
//============ク・トマツシカメヤマツイヒオ・==============
var kkk
for(kkk=menuid+2;kkk<=MenuClass;kkk++)
{
submenu=eval("document."+theform.name+"."+MenuIdArr[kkk])
submenu.length=0
submenu.options.add(new Option( "-----ヌ・。ヤ・----",""));
submenu.options[0].selected=true
}
}
倒~
三个下拉框有必要搞这么复杂吗
当然没有必要,这只是连动下拉AJAX实现的例子,应用到自己的项目中并不需要这么多代码,代码中注释有很多的.
ladofwind(随风) 说的对,提交一下就行了,但提交要刷新页面,很不爽,
来来,给你小改一下,拿去吧
<%@ page contentType="text/html; charset=gb2312"%>
<%
String s1 = request.getParameter("S1");
String s2 = request.getParameter("S2");
String s3 = request.getParameter("S3");
%>
<body>
<form name="form" method="POST" action="list.jsp">
<select name="S1" width="50" size="1" onChange="document.form.submit()">
<option value="a1" <%=s1!=null&&s1.equals("a1")?"selected":""%>> a1 </option>
<option value="b1" <%=s1!=null&&s1.equals("b1")?"selected":""%>> b1 </option>
</select>
<select name="S2" width="50" size="1" onChange="document.form.submit()">
<option value="a2" <%=s2!=null&&s2.equals("a2")?"selected":""%>> a2 </option>
<option value="b2" <%=s2!=null&&s2.equals("b2")?"selected":""%>> b2 </option>
</select>
<select name="S3" width="50" size="1" onChange="document.form.submit()">
<option value="a3" <%=s3!=null&&s3.equals("a3")?"selected":""%>> a3 </option>
<option value="b3" <%=s3!=null&&s3.equals("b3")?"selected":""%>> b3 </option>
</select>
</form>
S1:<%=s1%>
S2:<%=s2%>
S3:<%=s3%>
</body>
mark
- -
晕。
不同意kevin的做法
这样做 没次都要提交到服务器
那么简单的业务 我想没必要增加服务器的负担
JAVASCRIPT 解决 我想更好