可以添加动态行了 但是怎么添加数据时 只能添加一行  添加两行时数据就添加不到数据库  添加行的JavaScript代码如下:
function add_item(){
    
    var arr = new Array(8)    
    arr[0]="waName";
    arr[1]="waSn";
    arr[2]="waBirth";
    arr[3]="waDep"
    arr[4]="waSec";
    arr[5]="waPost";
    arr[6]="waType";
    arr[7]="waJobt";var table=document.getElementById("power");
    var rows=table.rows.length-1;
    var newrow=table.insertRow(rows+1);
    var num=rows+n;
    for (var i=0;i<table.rows[0].cells.length;i++)
{
 the_cell=newrow.insertCell(i);

     if(arr[i]=="waName")
   the_cell.innerHTML="<center><input type='text' id='"+arr[i]+num+"' name='"+arr[i]+"' size='8'/>&nbsp;<input type='button' value='按姓名查找' style='cursor:hand' onclick='openEmployeeControl()'></center> ";

     else if(arr[i]=="waSn")
   the_cell.innerHTML="<center><input type='text' id='"+arr[i]+num+"' name='"+arr[i]+"' size='8'/></center> ";

 else if(arr[i]=="waBirth")
   the_cell.innerHTML="<center><input type='text' id='"+arr[i]+num+"' name='"+arr[i]+"' size='10'/></center> ";

 else if(arr[i]=="waDep")
   the_cell.innerHTML="<center><input type='text' id='"+arr[i]+num+"' name='waDep' size='10'/></center> ";

 else if(arr[i]=="waSec")
   the_cell.innerHTML="<center><input type='text'id='"+arr[i]+num+"' name='waSec' size='10'/></center> ";

 else if(arr[i]=="waPost")
   the_cell.innerHTML="<center><input type='text'id='"+arr[i]+num+"' name='waPost' size='8'/></center> ";

 else if(arr[i]=="waType")
   the_cell.innerHTML="<center><input type='text' name='"+arr[i]+num+"' size='11'/></center> ";

 else if(arr[i]=="waJobt")
   the_cell.innerHTML="<center><input type='text' name='"+arr[i]+num+"' size='10'/></center> ";
}

   
}
function del_item()
{
    var table=document.getElementById("power");
    var rows=table.rows.length;
if(rows==1) return;
table.deleteRow(rows-1);
m++;
}
请问怎么处理才行?
让每一列都成为一个数组   数据到数据库中自动和表头关联

解决方案 »

  1.   

    添加行的TEXTBOX改成
    <input type='text' name='" + arr[i] + "' id='"+arr[i]+num+"' size='10'/>服务器端取的时候用
    String[] waName = request.getParameters("waName");
      

  2.   

    补充下  我用的是Struts+Hibernate+spring  要怎么才行?
      

  3.   

    service: public void saveWagee(WageeFormBean wagee,List list){
     
     try{
    //把从页面中传过来的list中的空值去掉
     for(int i=0;i<list.size();){
             if(list.get(i)==null) list.remove(i);
             else i++;
             }
     Wage co=new Wage();
     BeanUtils.copyProperties(co,wagee);
     wageDAO.saveWage(co);
     


              
                    Wagee wa=new Wagee();
            BeanUtils.copyProperties(wa,wagee); 
            wageeDAO.saveWagee(wa);
            WageRelation re=new WageRelation();
         
            re.setWagee(wa);
            re.setWage(co);
            wageRelationDAO.saveWageRelation(re);

         
       
    }catch(Exception e){
    e.printStackTrace();
    }
     }
      

  4.   

    Action :
      
    else if(wagee.getAction().equals("addWage"))
    {
    try{
    wageeService.saveWagee(wagee,list);
    }catch(Exception e){
    e.printStackTrace();
    }
    return mapping.findForward("addWage");
    }
      

  5.   

    JSP文件中添加行的TEXTBOX改成
    <input type='text' name="'list[" + i + "]." + arr[i] + "' size='10'/>
    -----------------------------------------------------------------------
    FORM中定义:
    private List<Wage> list= new ArrayList<Wage>();public getList()...
    public setList(....
    ----------------------------------------------------------------------
    Action :
       
    else if(wagee.getAction().equals("addWage"))
    {
    try{
    wageeService.saveWagee(wagee,form.getList());
    }catch(Exception e){
    e.printStackTrace();
    }
    return mapping.findForward("addWage");
    }
    -----------------------------------------------------------------------
    service:  public void saveWagee(WageeFormBean wagee,List<Wage> list){
      
    try{
    //把从页面中传过来的list保存到DB
    for(int i=0;i<list.size();i++){
    wageDAO.saveWage(list.get(i));
    }
      

  6.   

    按照你的方法做了  但是报错:  BeanUtile.populate       怎么办?
      

  7.   

    按照你的方法做了 但是报错: BeanUtils.populate 怎么办?
      

  8.   

    JSP文件中添加行的TEXTBOX改成
    <input type='text' name="'list[" + i + "]." + arr[i] + "' size='10'/>
    -----------------------------------------------------------------------Action中:
    if(wagee.getAction().equals("addWage"))
    {

    try{


    wageeService.saveWagee(wagee,list);

        }catch(Exception e){
    e.printStackTrace();
    }
    return mapping.findForward("addWage");
    }
    -----------------------------------------------------------------------
    service:
    private List<WageeFormBean> list= new ArrayList<WageeFormBean> ();
         
         
         public List<WageeFormBean> getList() {
             return this.list;
         }
         
         public void setList(List<WageeFormBean> list) {
             this.list = list;
         }

     public void saveWagee(WageeFormBean wagee, List<WageeFormBean> list){
     
     try{
    //把从页面中传过来的list中的空值去掉

     Wage co=new Wage();
     BeanUtils.copyProperties(co,wagee);
     wageDAO.saveWage(co);
     
              
     for(int i=0;i<list.size();i++)
     {
     

    Wagee wa=new Wagee();
                    BeanUtils.copyProperties(wa,list.get(i));
          
            wageeDAO.saveWagee(wa);
            WageRelation re=new WageRelation();
         
            re.setWagee(wa);
            re.setWage(co);
            wageRelationDAO.saveWageRelation(re);

         
     }
    }catch(Exception e){
    e.printStackTrace();
    }
     }
    -----------------------------------------------------------------------
    Hibernate:  public void saveWagee(Wagee wa){
         this.getHibernateTemplate().save(wa);
        }-----------------------------------------------------------------------
    其中 Wage是表头   Wagee是需要数据     WageeRelation中定义关联表