JAVA培训
位置:首页Java开发JSPServlet
 问题状态
 
关于自动添加行提交取值问题
 悬赏分: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  

  《request对象》我复制错了
    回答者:dgcr306@163.com  - 头衔:软件工程师 2007-10-24 15:49:41  

  我对JavaScript也不太了解
李老师有一个视频讲了一个不管前台怎么变化,后台都可以接受的例子,我忘了是哪个了,大概是 《JSP基础-response对象》你找找吧,希望对你有帮助!
    回答者:dgcr306@163.com  - 头衔:软件工程师 2007-10-24 15:46:54  

我的回答:
回答即可得10分,被采纳则可得50分+悬赏分。
  验证码

 
 
最新问题
欢迎使用本系统,智囊团。踊跃回答,赢得积分。

使用有问题请到 帮助
 
关于我们 | 商务合作 | 招聘信息 | 客服中心 | 服务条款 | 免责声明 | 网站导航 |java培训QQ留言
Copyright 2007 zhinangtuan.net.cn all rights reserved 版权所有