要在jsp页面中单击添加按钮时动态添加一行,都添加完以后点击保存实现多行一起保存。请各位帮帮忙吧。

解决方案 »

  1.   

    没实现过,不过思路这样行不行:
    动态添加一条记录,就动态生成一条sql语句,
    点保存的时候,一块提交执行
      

  2.   

    动态添加可以用javascript实现。
    你找一下insertRow(),insert Cell();
    每一列都是一个数组,
    获得他们的值就以后,保存还是难事吗?
      

  3.   

    不应该是生成SQL语句。应该是要用js实现的
      

  4.   

    我个人觉得,页面组织一个xml数据格式 提交到后台比较好。
    后台可以批量添加修改,前台处理也方便
      

  5.   

    zbo(黑魔导士比比) 能不能给写写程序看看
      

  6.   

    页面放一个隐藏域放xml文本,输入部分用js动态增加,填入数据,js修改隐藏域的xml内容
      

  7.   

    <html>
    <script language="javascript">
     var rowid=1;
     function $(id){
      return document.getElementById(id);
     }
     function addRow(){
      var _tab=$("test");
      var _row=_tab.insertRow();
      rowid+=1;
      var _col1=_row.insertCell();
      _col1.innerText=rowid;
      _col1.align="center";
      var _col2=_row.insertCell();
      _col2.innerHTML="<input type='text'>";
      _col2.align="center";
      var _col3=_row.insertCell();
      _col3.innerHTML="<input type='text'>";
      _col3.align="center";
      var _col4=_row.insertCell();
      _col4.innerHTML="<input type='text'>";
      _col4.align="center"; }
    </script>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>增加行</title>
    </head><body>
     <table>
      <tr>
         <td align="center" valign="top">
        <table width="200" border="1" align="center">
          <tr>
         <td><input type="button" name="addBtn" value="&nbsp;&nbsp;add&nbsp;&nbsp;" onClick="addRow();"></td>
          </tr>
          <tr>
         <td><input type="button" name="addBtn" value="delete"></td>
          </tr>
        </table>
         </td>
       <td><table id="test" border="1">
        <tr>
         <td>&nbsp;</td><td align="center">ID</td><td align="center">Name</td><td align="center">Desc</td>
        </tr>
        <tr>
         <td align="center" width="50">1</td>
         <td><input type="text" name="id" id="testId"></td>
         <td><input type="text" name="name" id="testName"></td>
         <td><input type="text" name="desc" id="testDesc"></td>
        </tr>
      </table></td>
      </tr>
     </table>
    </body>
    </html> 
      

  8.   

    laodabest(),你的方法很好,但是我要一次性提交给数据库保存,结果集该怎么提交呢?
      

  9.   

    还有,不是有个 delete 按钮么,要是想删除最后的一行,js 该怎样实现呢?
      

  10.   

    换了一个<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>动态增删表格行</title>
    <script language="JavaScript">
    <!--
    //author: Robin
    //email: [email protected] rowIndex=0;
    function addLine(obj){
    var objSourceRow=obj.parentNode.parentNode;
    var objTable=obj.parentNode.parentNode.parentNode.parentNode;
    if(obj.value=='增加'){
    rowIndex++;
    var objRow=objTable.insertRow(rowIndex);
    var objCell;objCell=objRow.insertCell(0);
    objCell.innerHTML="&nbsp;"; objCell=objRow.insertCell(1);
    objCell.innerHTML=objSourceRow.cells[1].innerHTML;objCell=objRow.insertCell(2);
    objCell.innerHTML=objSourceRow.cells[2].innerHTML.replace(/增加/,'删除');
    }
    else{
    objTable.lastChild.removeChild(objSourceRow);
    rowIndex--;

    }function removeLine(){}//-->
    </script>
    </head>
    <body bgcolor="#ffffff">
    <form name="form1" method="post">
    <table width="400" border="0">
    <tr>
    <td>基本信息</td>
    <td></td>
    <td><input name="basicinfo" type="text" id="basicinfo">
    <input name="add" type="button" id="add" value="增加" onClick="addLine(this)"></td>
    </tr>
    <tr>
    <td>其它信息</td>
    <td>&nbsp;</td>
    <td><input type="text" name="textfield"></td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    </table>
    </form>
    </body>
    </html>
      

  11.   

    数据提取进行保存,应该用String[] strArrFuncID = request.getParameterValues("add");
    就可以了,你可以试下
      

  12.   

    好了,解决了,把button
    -----------------------
    <input name="add" type="button" id="add" value="ADD" onClick="addLine(this)"></td>
    -----------------------
    放到“基本信息”下就可以了