使用唯一ID复制记录

时间:2015-09-01 08:09:46

标签: javascript jquery html html-table

我遵循了一些创建的解决方案,其中大部分都在工作,但我有一个问题,即重复SELECTED id记录,而不仅仅是HTML的结构。

    foreach ($pdo->query($sql) as $row) {
        echo '<tr id="myrow">';
        echo '<td>'. $row['id'] . '</td>';
        echo '<td>'. $row['finishing'] . '</td>';
        echo '<td>'. $row['price'] . '</td>';
        echo '<td width=250>';
        echo '<a class="btn btn-warning" onclick=duplicate()>Duplicate</a>';    
    }

当我点击DUPLICATE按钮时,我想根据所选的id复制整行。

我的重复实施:

  var i = 1;
  $("table tr:first").clone().find("tr").each(function() {
     $(this).attr({
        'id': function(_, id) { return id + i },
        'value': ''               
     });
  }).end().appendTo("table");

  i++;

  });

更新:另一种重复尝试:

            document.getElementById('duplicateid').onclick = addMoreFields;
             var newRow = document.getElementById('myrow').cloneNode(true),
             myTable = document.getElementById('myTable');
             function addMoreFields() {
                    myTable.appendChild(newRow.cloneNode(true));
                }

1 个答案:

答案 0 :(得分:1)

您需要使用引号添加函数duplicate()onclick="duplicate()"

echo '<a class="btn btn-warning" onclick="duplicate()">Duplicate</a>'; 

修改

每一行都有相同的ID(myrow),这是不正确的,所以我要把它改成一个类。为每一行提供一个新属性,例如data-id。

因为我确定ID是一个整数我没有给它属性ID,因为ID不能以整数开头。

echo '<tr class="myrow" data-id="'.$row['id'].'">';

然后将ID发送到复制功能。

echo '<a class="btn btn-warning" onclick="duplicate(\''.$row['id'].'\')">Duplicate</a>';

然后复制该行并将其附加到表格中。

    function duplicate(id){

     $("#themeTable tr[data-id='"+id+"']").clone().appendTo($("#themeTable"));

    }

我完全不明白你想要什么。是这个吗?单击时将行附加到表的末尾?