我想将产品添加到表中,但是当我添加新产品时,它的数量和小计会使用 Javascript 刷新(默认为 1)

Posted

技术标签:

【中文标题】我想将产品添加到表中,但是当我添加新产品时,它的数量和小计会使用 Javascript 刷新(默认为 1)【英文标题】:I want to add products to table but when i add new proudct its quantity and subtotal gets refreshed (by default 1 ) using Javascript 【发布时间】:2022-01-22 14:44:16 【问题描述】:

。如何在不刷新旧数据的情况下添加产品?我应该将产品数据存储到本地存储中吗?

下图是为了更好地理解我的问题...

let product_name = ''
let product_price = ''
let quantity = 1

const quantity_change = (x) => 
  x.parentElement.parentNode.children[3].children[0].value = x.value * product_price


const deleteRow = (row) => 
  row.parentElement.parentElement.remove()


const getProduct = (x) => 
  product_name = x.children[2].value
  product_price = x.children[2].value
  product_subtotal = parseInt(quantity) * parseInt(product_price);

  let tbody = document.getElementById("tbody").innerhtml += `
        <tr>
          <td>$product_name</td>
          <td><input type='number' onchange='quantity_change(this)' value='$quantity' class='form-control'</td>
          <td><input type='text' value='$product_price' class='form-control' readonly/></td>
          <td><input type='text' value='$product_price * quantity' class='form-control' readonly/></td>
          <td><button class='btn btn-danger' onclick="deleteRow(this)">x</button></td>
          </tr>
        `
<table class="table ">
  <tr>
    <th>Product Name</th>
    <th>Quantity</th>
    <th>Price</th>
    <th>Subtotal</th>
    <th>X</th>
  </tr>
  <tbody id="tbody">

  </tbody>
</table>

【问题讨论】:

与您的问题无关,只是一个注释。除了example.com example.com 是保留域,admin.com 归某人所有,切勿将任何其他“假”域用于电子邮件。这可能会在将来给您带来问题。 使用this 代替使用直接索引键。您必须为quantity_change 进行调试。因为根据代码,它似乎使所有产品的 price * 1(您定义默认数量) Michael Mono...你是对的...这仅用于测试目的。 【参考方案1】:

我使用以下代码解决了这个问题。我使用了内置的 JavaScript 表格函数

const getProduct = (x) =>

    product_name = x.children[1].value
    product_price = x.children[2].value
    product_subtotal = parseInt(quantity) * parseInt(product_price);

    let tbody = document.getElementById("tbody");
    let row = tbody.insertRow(tbody)
    let cell1 = row.insertCell(0);
    let cell2 = row.insertCell(1);
    let cell3 = row.insertCell(2);
    let cell4 = row.insertCell(3);
    let cell5 = row.insertCell(4);

    cell1.innerHTML = `$product_name`
    cell2.innerHTML = `<input type='number' onclick='quantity_change(this)' value='$quantity' class='form-control'/>`
    cell3.innerHTML = `<input type='text' value='$product_price' class='form-control' readonly/>`
    cell4.innerHTML = `<input type='text' value='$product_price * quantity' class='form-control' readonly/>`
    cell5.innerHTML = `<button class='btn btn-danger' onclick="deleteRow(this)">x</button>`

【讨论】:

以上是关于我想将产品添加到表中,但是当我添加新产品时,它的数量和小计会使用 Javascript 刷新(默认为 1)的主要内容,如果未能解决你的问题,请参考以下文章

在读取和绑定多个文件时将“文件名”列添加到表中

Woocommerce 订阅 - 在订阅 ID 旁边添加产品名称

EntityFramework,在添加到表时获取对象ID

我想在购物车中添加产品而不用 AJAX 和 Django 刷新页面

将分类术语添加到 WooCommerce 产品永久链接

将表单条目保存到变量并添加到表中