怎么将JS页面页面生成的动态表格,批量插入数据库?页面上用JS动态添加行,怎样批量插入数据库。以前我是把数据封装在数组里,然后在action里处理,但是这种方法不好,还有什么方法可以实现?
序号 用户姓名 电子邮箱 固定电话 移动手机 公司名称 <input name="Submit" type="button" value="添加参与人"> <input name="Submit2" type="button" value="清空"> <input name="txtTRLastIndex" id="txtTRLastIndex" type="hidden" value="1">JS代码部份<script language="javascript">// Example: obj = findObj("image1"); function findObj(theObj, theDoc){ var p, i, foundObj; if(!theDoc) theDoc = document; if( (p = theObj.indexOf("?")) > 0 && parent.frames.length) { theDoc = parent.frames[theObj.substring(p+1)].document; theObj = theObj.substring(0,p); } if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj]; for (i=0; !foundObj && i < theDoc.forms.length; i++) foundObj = theDoc.forms[i][theObj]; for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) foundObj = findObj(theObj,theDoc.layers[i].document); if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj); return foundObj;} //添加一个参与人填写行 function AddSignRow(){ //读取最后一行的行号,存放在txtTRLastIndex文本框中 var txtTRLastIndex = findObj("txtTRLastIndex",document); var rowID = parseInt(txtTRLastIndex.value); var signFrame = findObj("SignFrame",document); //添加行 var newTR = signFrame.insertRow(signFrame.rows.length); newTR.id = "SignItem" + rowID; //添加列:序号 var newNameTD=newTR.insertCell(0); //添加列内容 newNameTD.innerHTML = newTR.rowIndex.toString(); //添加列:姓名 var newNameTD=newTR.insertCell(1); //添加列内容 newNameTD.innerHTML = "<input name="txtName" + rowID + "" size="12" id="txtName" + rowID + "" type="text">"; //添加列:电子邮箱 var newEmailTD=newTR.insertCell(2); //添加列内容 newEmailTD.innerHTML = "<input name="txtEMail" + rowID + "" size="20" id="txtEmail" + rowID + "" type="text">"; //添加列:电话 var newTelTD=newTR.insertCell(3); //添加列内容 newTelTD.innerHTML = "<input name="txtTel" + rowID + "" size="10" id="txtTel" + rowID + "" type="text">"; //添加列:手机 var newMobileTD=newTR.insertCell(4); //添加列内容 newMobileTD.innerHTML = "<input name="txtMobile" + rowID + "" size="12" id="txtMobile" + rowID + "" type="text">"; //添加列:公司名 var newCompanyTD=newTR.insertCell(5); //添加列内容 newCompanyTD.innerHTML = "<input name="txtCompany" + rowID + "" size="20" id="txtCompany" + rowID + "" type="text">"; //添加列:删除按钮 var newDeleteTD=newTR.insertCell(6); //添加列内容 newDeleteTD.innerHTML = ""; //将行号推进下一行 txtTRLastIndex.value = (rowID + 1).toString() ; } //删除指定行 function DeleteSignRow(rowid){ var signFrame = findObj("SignFrame",document); var signItem = findObj(rowid,document); //获取将要删除的行的Index var rowIndex = signItem.rowIndex; //删除指定Index的行 signFrame.deleteRow(rowIndex); //重新排列序号,如果没有序号,这一步省略 for(i=rowIndex;i<signframe.rows.length;i++){ signframe.rows[i].cells[0].innerhtml="i.toString();" }="" }="" 清空列表="" function="" clearallsign(){="" if(confirm('确定要清空所有参与人吗?')){="" var="" signframe="findObj("SignFrame",document);" var="" rowscount="signFrame.rows.length;" 循环删除行,从最后一行往前删除="" for(i="rowscount" -="" 1;i=""> 0; i--){ signFrame.deleteRow(i); } //重置最后行号为1 var txtTRLastIndex = findObj("txtTRLastIndex",document); txtTRLastIndex.value = "1"; //预添加一行 AddSignRow(); } } </script>
除了用AJAX,还可以使用什么方法,关键是效率要高,事务不出问题?