2011-12-29 64 views
0

我有一个名为newTable的html表格,我想将该表格中的数据保存到MySQL表格中。 我的问题是行插入newtable中使用数据被 这里怎么插入这个表jqueryselectors和个人行列组合可是没有一个唯一的ID /名称(它这是在运行时填充的动态表)将html表格数据保存到数据库中

var ntr='',//to store html for new table row 
     rows=[],//to collect new rows 
     $tbl=$("#table_rolecart tbody"),//original table 
     l=$("tr", $tbl).length;//length of rows in original table's tbody section 
     var row, brow, drow, trclass; 
     for(var i=0;i<l;){ 
     row=$("tr:eq("+i+")", $tbl);//row with item name 
     brow=row.next("tr");//row with business justification textbox 
     drow=brow.next("tr");//row with date textboxes 

     ntr= '<tr><td>'+$("td:nth-child(2)",row).text()+'</td><td>' //add item name 
       +$("td:nth-child(3)",row).text()+'</td><td>'//add description 
       +$(brow).find("input#ar_businessjust").val()+'</td><td>' //add business just. 
       +$(drow).find("input#ar_startdate").val()+'</td><td>'//start date 
       +$(drow).find("input#ar_enddate").val()+'</td></tr>';//end date 
       rows.push(ntr); 
    i+=4; //we have traversed 3 rows and one empty row, next item should be current + 4 
     } 
     $("#newTable tbody").append(rows.join('')); 

所以它基本上是从购物车表中填充的汇总数据。目前,ar_businessjust,ar_startdate,ar_enddate这两个字段是与购物车中所有商品相同的id的通用字段。即使我有一个包围它的表单,并且使用jquery.ajax()调用传递参数form_id.serialize夹在它目前

+3

您的代码很可怕 –

+0

其基本扫描3行rolecart表并将它们附加到summarycart表中的单行中,因为购物车中的每个项目占用多行(3行data + 1 spacer row = 4) –

+0

Comments属于代码。 –

回答

0

OK,

不以消极的方式开始,但使用相同ID的几个元素是不是要走的路。将它改为类是一个更好的选择。

但是,当涉及到序列化表单时,http://api.jquery.com/serialize/(这是你正在使用的?),说只有“成功的控件”被序列化。 http://www.w3.org/TR/html401/interact/forms.html#h-17.13.2告诉我们你需要一个名称属性。

我的建议:将多次使用的ID更改为类,并更新您的选择器。添加名称属性,并查看是否有帮助。

但是,我假设您在控制打印购物车表的代码。

+0

现在我只是在td内容旁边创建了隐藏变量,并且在表单序列化时这些隐藏变量得到了传递,解决了我的问题,尽管不是最顺利的方式。 –