javascript - 如何将搜索到的数据从数据库传输到具有完整数据行的另一个表?
问题描述
我正在做一个小项目,一个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]。
当我在谷歌上搜索一些教程时,我认为复选框会更好,而不是单击行。有人可以帮我解决这个问题吗?
解决方案
我现在得到了答案。
使用此代码
<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>
“数量”和“小计”列仍然缺乏,但我认为总比没有好。我仍然愿意帮助我解决这个问题。:)
推荐阅读
- arrays - 如何按时间顺序移动数组?
- rest - 如何在 swagger 上分析请求(带有查询)并发送不同的响应正文?
- tfs - 字段“状态”包含不在支持值列表中的值“已批准”
- java-8 - Java 8 中的终端操作 sum() 在哪里实现?
- javascript - 如何使用 Kendo.Button() 的 Events 方法将模型的属性发送到 JavaScript 函数
- angular - Angular 2+从视图目标到数据源的一种方式数据绑定
- python - 调用类方法或返回 None
- arm - 什么指令修改了 CPSR 寄存器中的状态标志?
- bash - 使用来自 php 的 shell 将文本附加到文件
- c# - WebRequest.GetResponseAsync() 在 WebRequest.GetResponse() 成功的地方失败