| 问题状态 |
|
|
| 关于自动添加行提交取值问题 |
悬赏分:100 已经过期 过期时间2007-10-19 21:09
|
下面是从别人的ERP系统找到的代码,搞了半天没有搞清楚原理,希望大家能帮帮忙. 先谢过! 以下是自动增加无数行的代码 后台提交文件是:abc.jsp abc.jsp如何接收上面提交过来的值呀?
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <script type="text/javascript" language="javascript"> var i i=0 function addRow() { var temptext var row = table1.insertRow(i+1) var cell = row.insertCell(0) var temppartname i=i+1 temppartname="part_id"+i temptext="<p align='center'><input name='"+temppartname+ "' size='6' value=''> " cell.innerHTML=temptext cell = row.insertCell(1) temppartname="part_name"+i cell.innerHTML="<p align='center'><input name='"+temppartname+"' size='6' value=''>" cell = row.insertCell(2) temppartname="des"+i cell.innerHTML="<p align='center'><input name='"+temppartname+"' size='6' value=''>" cell = row.insertCell(3) temppartname="unit"+i cell.innerHTML="<p align='center'><input name='"+temppartname+"' size='6' value=''>" cell = row.insertCell(4) temppartname="price"+i cell.innerHTML="<p align='center'><input name='"+temppartname+"' size='6' value='' >" cell = row.insertCell(5) temppartname="qty"+i cell.innerHTML="<p align='center'><input name='"+temppartname+"' size='6' value='' >" cell = row.insertCell(6) temppartname="receive_qty"+i cell.innerHTML="<p align='center'><input name='"+temppartname+"' size='6' value='0'>" cell = row.insertCell(7) temppartname="iyear"+i tempstr="<div align='center'><center><input name='"+temppartname+"' size='6' value='' >" cell.innerHTML=tempstr cell = row.insertCell(8) temppartname="sub_sum"+i cell.innerHTML="<p align='center'><input name='"+temppartname+"' size='6' value=''>" cell = row.insertCell(9) temppartname="sub_remark"+i cell.innerHTML="<p align='center'><input name='"+temppartname+"' size='6' value=''>" cell = row.insertCell(10) temppartname="isdel"+i cell.innerHTML="<p align='center'><input type='checkbox' name='"+temppartname+"' value='1'>" } function selectpart(ipatno,form) { var temppart_id var tempstr var sourcestr var nameliststr var fieldvaluestr var tempvalue var tempnamestr sourcestr='<%=comstr%>'; nameliststr='<%=namelist%>'; tempnamestr='part_id' + ipatno ; for (var i=0;i<form.elements.length;i++) { var e = form.elements[i]; if (e.name ==tempnamestr) fieldvaluestr=e.value ; } tempstr=findfieldrecordstr(sourcestr,nameliststr,1,"part_id",fieldvaluestr); for (var i=0;i<form.elements.length;i++) { var e = form.elements[i]; tempnamestr='part_name' + ipatno ; if (e.name ==tempnamestr) { tempvalue=findfieldvalue(tempstr,nameliststr,1,"name"); e.value= tempvalue; } tempnamestr='des' + ipatno ; if (e.name ==tempnamestr) { tempvalue=findfieldvalue(tempstr,nameliststr,1,"des"); e.value= tempvalue; } tempnamestr='unit' + ipatno ; if (e.name ==tempnamestr) { tempvalue=findfieldvalue(tempstr,nameliststr,1,"unit"); e.value= tempvalue; } tempnamestr='max_price' + ipatno ; if (e.name ==tempnamestr) { tempvalue=findfieldvalue(tempstr,nameliststr,1,"max_price"); e.value= tempvalue; } } } </script> </head> <body > <div align="center"> <form method="POST" action="abc.jsp" id=form1 onsubmit="return FrontPage_Form1_Validator(this)" name="FrontPage_Form1" language="JavaScript"> <table border="1" id="table1" id="AutoNumber1" cellpadding="2" cellspacing="1" style="border-collapse: collapse" bordercolor="#ffffff" width="95%" id="AutoNumber1" bgcolor="#ffffff"> <tr> <td bgcolor="cccccc" align="center">货品编码</td> <td bgcolor="cccccc" align="center">名称</td> <td bgcolor="cccccc" align="center">包装规格</td> <td bgcolor="cccccc" align="center">单位</td> <td bgcolor="cccccc" align="center">单价</td> <td bgcolor="cccccc" align="center">数量</td> <td bgcolor="cccccc" align="center">收货数量</td> <td bgcolor="cccccc" align="center">交货日期</td> <td bgcolor="cccccc" align="center">小计</td> <td bgcolor="cccccc" align="center">备注</td> <td bgcolor="cccccc" align="center">删除</td> </tr> <tr> <td bgcolor="cccccc" align="center"><input size="6" name="id<%=cstr(index)%>"></td> <td bgcolor="cccccc" align="center"><input size="6" name="name<%=cstr(index)%>"></td> <td bgcolor="cccccc" align="center"><input size="6" name="des<%=cstr(index)%>"></td> <td bgcolor="cccccc" align="center"><input size="6" name="unit<%=cstr(index)%>"></td> <td bgcolor="cccccc" align="center"><input size="6" name="price<%=cstr(index)%>"></td> <td bgcolor="cccccc" align="center"><input size="6" name="qty<%=cstr(index)%>"></td> <td bgcolor="cccccc" align="center"><input size="6" name="receive_qty<%=cstr(index)%>"></td> <td bgcolor="cccccc" align="center"><input size="6" name="iyear<%=cstr(index)%>"></td> <td bgcolor="cccccc" align="center"><input size="6" name="sub_sum<%=cstr(index)%>" ></td> <td bgcolor="cccccc" align="center"><input size="6" name="sub_remark<%=cstr(index)%>"></td> <td bgcolor="cccccc" align="center"><input type="checkbox" name="isdel<%=cstr(index)%>" value="1"></td> </tr> <tr> <td bgcolor="cccccc" align="center" width="101%" colspan="11"><input type="button" value="新增一行" onclick="addRow()" style="color: #000000; background-color: #cccccc; border: 1px solid #800000" /><input style="font-size: 9pt; width: 45px; height:18px; color: #000000; background-color: #<%=cccccc>; border:1px solid #800000; " type="submit" name="B1" value="保存"></td> </tr> </table> </center> </div> </form> <br> </body> </html> ●详细代码: |
| 提问者:huangliangjun83@126.com - 头衔:开发爱好者 |
| |
| |
|
|
| 回复答案 |
共6条 |
| |
Enumeration getAttributeNames() Returns an Enumeration containing the names of the attributes available to this request. |
| 回答者:39275612@qq.com - 头衔:开发爱好者 2008-9-3 22:09:38 |
|
| |
其实用request.getParameterNames()就可以获取了,不管你的前台怎么变化 例如: 前台的页面代码如下: <form action="receive.jsp"> <input type="text" size="6" name="id1"> <input type="text" size="6" name="id2"> <input type="text" size="6" name="name1"> <input type="text" size="6" name="name2"> <input type="checkbox" name="isdel1" value="1">1 <input type="checkbox" name="isdel1" value="2">2 <input type="checkbox" name="isdel1" value="3">3 <input type="submit" value="提交"/> </form> 那么后台receive.jsp就可以这样来接收值: <% Enumeration enu = request.getParameterNames(); while(enu.hasMoreElements()){ String paramName = (String)enu.nextElement(); //out.println(paramName); if(paramName.startsWith("id")){ String idValue = (String)request.getParameter(paramName); out.println(paramName + "-->" + idValue + "<br/>"); } if(paramName.startsWith("name")){ String idValue = (String)request.getParameter(paramName); out.println(paramName + "-->" + idValue + "<br/>"); } if(paramName.startsWith("isdel")){ //out.println(paramName + "\n"); String[] isdelValue = request.getParameterValues(paramName); for(int i=0; i<isdelValue.length; i++){ out.println(paramName + "-->" + isdelValue[i] + "<br/>"); } } } %>
希望可以帮到你! |
| 回答者:holmes17@126.com - 头衔:开发爱好者 2008-6-13 22:02:11 |
|
| |
request.getParameter(name) ; 用这个方法挨个接受啊 |
| 回答者:sclwhhit@163.com - 头衔:开发爱好者 2008-5-27 19:40:41 |
|
| |
使用String[] para = request.getParameterValues("para"); 以数组形式接受前台页面传进来的值 |
| 回答者:dayu025@126.com - 头衔:开发爱好者 2008-4-22 13:01:47 |
|
| |
我对JavaScript也不太了解 李老师有一个视频讲了一个不管前台怎么变化,后台都可以接受的例子,我忘了是哪个了,大概是 《JSP基础-response对象》你找找吧,希望对你有帮助!
|
| 回答者:dgcr306@163.com - 头衔:软件工程师 2007-10-24 15:46:54 |
|
|
|
|
| 欢迎使用本系统,智囊团。踊跃回答,赢得积分。 |
|
| 使用有问题请到 帮助 |
|