yinxuchina 2008-11-05 23:32
浏览 366
已采纳

怎么将JS页面页面生成的动态表格,批量插入数据库?

 

 怎么将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&quot; + rowID + &quot;" size="12" id="txtName&quot; + rowID + &quot;" type="text">"; //添加列:电子邮箱 var newEmailTD=newTR.insertCell(2); //添加列内容 newEmailTD.innerHTML = "<input name="txtEMail&quot; + rowID + &quot;" size="20" id="txtEmail&quot; + rowID + &quot;" type="text">"; //添加列:电话 var newTelTD=newTR.insertCell(3); //添加列内容 newTelTD.innerHTML = "<input name="txtTel&quot; + rowID + &quot;" size="10" id="txtTel&quot; + rowID + &quot;" type="text">"; //添加列:手机 var newMobileTD=newTR.insertCell(4); //添加列内容 newMobileTD.innerHTML = "<input name="txtMobile&quot; + rowID + &quot;" size="12" id="txtMobile&quot; + rowID + &quot;" type="text">"; //添加列:公司名 var newCompanyTD=newTR.insertCell(5); //添加列内容 newCompanyTD.innerHTML = "<input name="txtCompany&quot; + rowID + &quot;" size="20" id="txtCompany&quot; + rowID + &quot;" 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(&quot;SignFrame&quot;,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,还可以使用什么方法,关键是效率要高,事务不出问题?

  • 写回答

2条回答 默认 最新

  • 「已注销」 2008-11-06 00:13
    关注

    把数据封装在数组里,然后在action里处理

    这样有貌似没什么不好呀。。

    另外,用不用ajax和效率,事务没什么关系吧。。

    效率,事务,都看你在action和数据库怎么处理的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥15 一道python难题3
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试