动态生成的单元格中的数据如何提交?

解决方案 »

  1.   

    生成单元格的同时生成相应的hidden字段记录数据,递交时一起递交,
    或者,遍历表格,将td.innerHTML 用字符串连接起来xxx,xxx,xx,然后给一个hidden字段赋值后,递交数据
      

  2.   

    http://topic.csdn.net/u/20090912/17/f5a5c8fe-5ac4-41f9-b4e1-7e976a9b6995.html我在这个帖子的4楼已经发过了代码了。你看看吧
      

  3.   

    解决方式如下:
    在页面中设置一个变量【名称数字部分自加】,以及表的行数。每当js新增一行时,修改表的行数。
    提交到action中后,先获得表的行数,然后用for循环获取表中的值。页面部分如下:
    Java code<tr><td width="25%">零件名称</td><td width="25%">零件图号</td><td width="10%">单位</td><td width="10%">数量</td><td width="30%">生产厂家及标志td></tr><%int j=0;%><tr height="15px"><td><input type="hidden" name="msub_id<%=j %>"><input name="part_name<%=j %>" type="text" size="15"></td><td><input name="part_pic<%=j %>" type="text" size="12"></td><td><input name="units<%=j %>" type="text" size="10"></td><td><input name="amount<%=j %>" type="text" size="10"></td><td width="15%"><input name="prodc_factory<%=j %>" type="text" size="15"></td><td width="14%"><input name="prodc_logo<%=j %>" type="text" size="15"></td></tr><%j++;%><input type="hidden" name="count" value="<%=list1.size() %>"<input type="hidden" name="flag" value="1">//javascript部分var c=0;
    function addRow() {
        c= c+1;
            var i= table1.rows.length;//总行数,包括第一行         document.all("count").value=i;
            
            i= i-1;        var f= document.all("flag").value;//删除“无数据显示!”if(f==0){if(c==1){
                    table1.deleteRow(1);
                    i= i-1;
                }
                document.all("count").value= i+1;
            }        newRow=table1.insertRow(table1.rows.length);
        newRow.bgcolor='#CCCCCC';
            c0=newRow.insertCell(0);
            c1=newRow.insertCell(1);
            c2=newRow.insertCell(2); 
            c3=newRow.insertCell(3); 
            c4=newRow.insertCell(4); 
            c5=newRow.insertCell(5);
            
               c0.innerHTML="<td height=\"15px\"><div align=\"center\"><input name='part_name"+i+"' type='text' size='15'></div></td>";
            c1.innerHTML="<td ><div align=\"center\"><input name='part_pic"+i+"' type='text' size='12'></div></td>";
            c2.innerHTML="<td ><div align=\"center\"><input name='units"+i+"' type='text' size='10'></div></td>";
            c3.innerHTML="<td ><div align=\"center\"><input name='amount"+i+"' type='text' size='10'></div></td>";
            c4.innerHTML="<td width=\"14%\"><div align=\"center\"><input name='prodc_factory"+i+"' type='text' size='15'></div></td>";
            c5.innerHTML="<td width=\"14%\"><div align=\"center\"><input name='prodc_logo"+i+"' type='text' size='15'></div></td>";
        }
    后台代码:
    Java codetry{
                List list=new ArrayList();//故障原件            String countStr= request.getParameter("count");int count= Integer.parseInt(countStr);for(int i=0;i<count;i++){
                    Mainlist_sub msub=new Mainlist_sub();
                    
                    String part_name= request.getParameter("part_name"+i);
                    String part_pic= request.getParameter("part_pic"+i);
                    String units= request.getParameter("units"+i);
                    String amount= request.getParameter("amount"+i);
                String prodc_factory= request.getParameter("prodc_factory"+i);
                    String prodc_logo= request.getParameter("prodc_logo"+i);
                    String re2_1= request.getParameter("re2_1");
                    
                    msub.setPart_name(part_name);
                    msub.setPart_pic(part_pic);
                    msub.setUnits(units);
                    msub.setAmount(null!=amount?amount:"");
                    msub.setProdc_factory(prodc_factory);
                    msub.setProdc_logo(prodc_logo);
                    msub.setFlag("1");
                    msub.setRe(re2_1);
                    msub.setCreate_date(fdbck_date);
                    
                    list.add(msub);    
                }以上代码只是贴出了大概,原本的代码要比上面的复杂好多倍。
    楼主要自己好好琢磨。