我正在做一个小项目,一个POS。有两个表;第一个表的目的是从数据库中具有两个列名称的搜索框中获取产品。如果有产品,我将其单击并将其转移到第二个表中。来自另一个表的数据,但是我的问题是我只有第一个表的两列,而在本教程中它与第二个表相同。 有人可以提示我从哪里开始吗?还是有可能?
这是我的js代码:
<script>
function tab1_to_tab2()
{
var table1 = document.getElementById("table1"),
table2 = document.getElementById("table2"),
checkboxes = document.getElementsByName("tab1");
console.log("Val1 = " + checkboxes.length);
for(var i = 0; i < checkboxes.length; i++)
if (checkboxes[i].checked) {
var newRow = table2.insertRow(table2.length),
cell1 = newRow.insertCell(1),
cell2 = newRow.insertCell(2),
cell3 = newRow.insertCell(3);
cell1.innerHTML = table1.rows[i+1].cells[1].innerHTML;
cell2.innerHTML = table1.rows[i+1].cells[2].innerHTML;
cell3.innerHTML = table1.rows[i+1].cells[3].innerHTML;
i--;
console.log(checkboxes.length);
}
}
</script>
但是控制台出现错误:
未捕获的DOMException:无法在“ HTMLTableRowElement”上执行“ insertCell”:提供的值(1)超出[-1,0]范围。
当我搜索一些教程时,我认为复选框比单击行更好。 有人可以帮我吗?
答案 0 :(得分:0)
将INERT插入newTable(col1,col2,col3) SELECT列1,列2,列3 来自oldTable
答案 1 :(得分:0)
我现在得到了答案。
使用此代码
<script>
function tab1_to_tab2()
{
var table1 = document.getElementById("table1"),
table2 = document.getElementById("table2"),
checkboxes = document.getElementsByName("tab1");
var qty = 1;
console.log("Val1 = " + checkboxes.length);
for(var i = 0; i < checkboxes.length; i++)
if (checkboxes[i].checked) {
var newRow = table2.insertRow(table2.length),
cell1 = newRow.insertCell(0),
cell2 = newRow.insertCell(1),
cell3 = newRow.insertCell(2),
cell4 = newRow.insertCell(3);
cell1.innerHTML = table1.rows[i+1].cells[0].innerHTML;
cell2.innerHTML = table1.rows[i+1].cells[1].innerHTML;
cell3.innerHTML = table1.rows[i+1].cells[2].innerHTML;
cell4.innerHTML = table1.rows[i+1].cells[3].innerHTML;
console.log(checkboxes.length);
}
}
</script>
仍然缺少“数量”和“小计”列,但我认为总比没有好。我仍然很开放,谁会帮助我解决这个问题。 :)