我想在JSP中实现表格的动态增加,而且可以任意的删除每一行。还有就是把动态增加的表格中的input里的内容插入数据库中。哪位高手可以帮帮忙啊?有没有代码可以参考一下!

解决方案 »

  1.   

    不清楚你问的是什么意识,说的具体点,是每次变动更新一次数据库记录吗?UPDATE?
      

  2.   

    AJAX,非常简单就可以实现你想要的效果!
      

  3.   

    楼上的做法现在再用有点过时了,用AJAX吧,应用效果更象本地操作。
      

  4.   

    可以做两个按钮一个是增加 一个是更新,点击增加onclick事件,调用javascrip添加一条记录,每条记录后面都有个删除按钮,这个删除按钮也是javasccrip事件,点击就删除当前纪录,只有更新按钮是提交按钮 作后台的数据库操作
     <!--
                            //  增加
                            function AddRecord()
                            {
                                    var row = activeTable.insertRow(activeTable.rows.length);       
                                    var i = row.rowIndex;
                                    
                                    //  No. 
                                    var col = row.insertCell(0);
                                    col.align="center";             
                                    col.innerHTML = "<td>"+i+"</td>"; 
                                    
                                    //  工作日
                                    col = row.insertCell(1); 
                                    col.align="center";
                                    col.innerHTML = "<td><input  align='middle' name='tableWorkGZR' size='7' maxlength='10' onclick='setday(this)' style='ime-mode:inactive'/></td>"; 
                                    
                                    //  出发地
                                    col = row.insertCell(2);
                                    col.align="center"; 
                                    col.innerHTML = "<td><input  align='middle' name='tableWorkCFD' size='5' maxlength='10' style='ime-mode:active'></td>"; 
                                    
                                    //  目&#65533;?地
                                    col = row.insertCell(3);
                                    col.align="center"; 
                                    col.innerHTML = "<td><input  align='middle' name='tableWorkMDD' size='5' maxlength='10' style='ime-mode:active'></td>"; 
                                    
                                    //  出发时间
                                    col = row.insertCell(4);
                                    col.align="center"; 
                                    col.innerHTML = "<td><input name='tableWorkCFSJ' type='text' maxlength='2' size='1' style='text-align:right;ime-mode:inactive'><B>:</B><input name='tableWorkCFSJ1' type='text' maxlength='2' size='1' style='text-align:right;ime-mode:inactive'></td>"; 
                                    
                                    //  到达时间
                                    col = row.insertCell(5);
                                    col.align="center"; 
                                    col.innerHTML = "<td><input name='tableWorkDDSJ' type='text' maxlength='2' size='1' style='text-align:right;ime-mode:inactive'><B>:</B><input name='tableWorkDDSJ1' type='text' maxlength='2' size='1' style='text-align:right;ime-mode:inactive'></td>"; 
                                    
                                    //  工作&#65533;?始时间
                                    col = row.insertCell(6);
                                    col.align="center"; 
                                    col.innerHTML = "<td><input name='tableWorkGZKSSJ' type='text'  maxlength='2' size='1' style='text-align:right;ime-mode:inactive'><B>:</B><input name='tableWorkGZKSSJ1' type='text'  maxlength='2' size='1' style='text-align:right;ime-mode:inactive'></td>"; 
                                    
                                    //  工作结束时间
                                    col = row.insertCell(7);
                                    col.align="center"; 
                                    col.innerHTML = "<td><input name='tableWorkGZJSSJ' type='text'  maxlength='2' size='1' style='text-align:right;ime-mode:inactive'><B>:</B></td><input name='tableWorkGZJSSJ1' type='text'  maxlength='2' size='1' style='text-align:right;ime-mode:inactive'>"; 
                                    
                                    //  费用
                                    col = row.insertCell(8);
                                    col.align="center"; 
                                    col.innerHTML = "<td><input name='tableWorkFY' size='3' maxlength='11' style='text-align:right;ime-mode:inactive'> <select name='tableWorkFYType'><option value='' selected='true'></option><option value='0'><bean:message key="CWBZ02.yuan"/></option><option value='1'><bean:message key="CWBZ02.riyuan"/></option></select></td>";  
                                    
                                    //  摘&#65533;?
                                    col = row.insertCell(9);
                                    col.align="center"; 
                                    col.innerHTML = "<td><input  align='middle' name='tableWorkZY' size='7' maxlength='150' style='ime-mode:active'></td>"; 
                                    
                                    //  &#65533;?除
                                    col = row.insertCell(10);
                                    col.align="center"; 
                                    col.innerHTML = "<td><img src='./img/del.gif' border='0' style='cursor:hand' onClick= 'delrow( event.srcElement.parentElement.parentElement.rowIndex)' />";
                            
                                    //  更新&#65533;?&#65533;?
                                    col.innerHTML = col.innerHTML + "<input type = 'hidden' name='updateflag' value='1'>";
                                    
                                    //  出差补助详&#65533;?信息支番号
                                    col.innerHTML = col.innerHTML + "<input type = 'hidden' name='ramifyCode' value=''></td>";
                            }
                    
                            //  删除
                            function delrow(idexw)
                            {
                                    var i = idexw;
                                    var del = window.document.forms[0].elements["del"].value;
                                    if (i == 1 && activeTable.rows.length == 2) {
                                            window.document.forms[0].elements["del"].value =del + ';' + window.document.forms[0].elements["ramifyCode"].value;
                                    } else {
                                            window.document.forms[0].elements["del"].value =del + ';' + window.document.forms[0].elements["ramifyCode"](i-1).value;
                                    }
                                    
                                    activeTable.deleteRow(idexw);
                                    
                                    for (i; i<activeTable.rows.length; i++) {
                                            document.all.activeTable.rows(i).cells(0).innerText = i;
                                    }
                            } 这个是我以前的一个javasrip的增加和删除的例子,可以参考一下
      

  5.   

    其实就是相当于在你的jsp页面中,点击一次增加按钮,就会在jsp页面中动态的生成一行html,这行html有若干文本框和一个删除按钮,这个删除按钮一点击就会删除生成的这条当前的html,等你一切添加完毕,点击那个更新按钮,再作后台处理,更新数据库
      

  6.   

    贴出整个jsp ,这是一个struts框架的jsp页面,app是自定义标签,主要是javascrip主要看看,感觉楼主,主要是在这上面有些无从下手吧? 太长,分几页贴
      

  7.   

    <table id=i border width="100%">
    </table>
    <input type="button" value="减少" onclick="i.deleteRow()">
    <input type="button" value="添加" onclick="i.insertRow().insertCell().innerText='怎么获取行的id啊'" >
    <input type="button" value="检测" onclick="alert(i.outerHTML)">我想获取插入的行的id 然后根据id将数据插入数据库中
      

  8.   

    下面添加按钮生成的html动态行,formbean设置的是个数组,取得数组后,通过循环数组添加的,不需要把每条行id取出来
      

  9.   

    ======================JSP==========================
    function addNew(lotName){
    var bin=showModalDialog('bin.jsp',lotName,'status:no;resizable:yes;dialogHeight:500px;dialogWidth:360px;unadorne:yes');
    var newTr=document.all.binTable.insertRow();
    var newTd1=newTr.insertCell();
    var newTd2=newTr.insertCell();
    var newTd3=newTr.insertCell();
    newTd1.innerHTML="<td><input type='text' name='binName' value='"+binName+"' readonly='true'></td>";
    newTd2.innerHTML="<td><input type='hidden' name='binId' value='"+binValue+"'><input type='text' id='bin_QT' name='bin_QT' value='0'></td>";
    newTd3.innerHTML="<td><input type='button' name='addBin' value='刪除' onClick='del();'></td>";
    }
    function del(){
    var index=window.event.srcElement.parentElement.parentElement.rowIndex;
    document.all.binTable.deleteRow(index);
    for(i=0;i<document.all.binTable.rows.length-5;i++){
    document.all.binTable.rows[i+5].cells[1].children[0].name="binId";
    }
    }
    <div id="binDiv">
    <table align="center" width="100%" id="binTable" border="1"
    cellSpacing="0" cellpadding="0"
    style="border-collapse: collapse" bordercolor="000000">
    <tr align="center">
    <td>
    bin代碼:
    </td>
    <td>
    bin數量:
    </td>
    <td>
    <div>
    <input type="button"
    onclick="addNew('<%=lot.getName()%>')" value="增加">
    </div>
    </td>
    </tr>
    </table>
    </div>
    ===============================SERVLET ==========================================
    String[] binId = request.getParameterValues("binId");
    String[] bin_QT = request.getParameterValues("bin_QT");