php 影响所有元素的JavaScript函数

hvvq6cgz  于 2023-01-04  发布在  PHP
关注(0)|答案(1)|浏览(95)

我正在尝试开发一个购物车,允许用户通过使用滑块增加/减少购物车中物品的数量。
购物车中的每个项目都有自己的数量滑块。
问题是,如果购物车中有多个项目,移动第一个项目以外的任何项目的滑块只会影响第一个项目的数量。换句话说,如果购物车中有2个项目,我使用滑块增加第二个项目的数量,第一件商品的数量改变了,而不是第二件商品。购物车页面主要是用php编写的,数量改变的功能是基于JavaScript编写的滑块控件。
我到底做错了什么?
下面是我的javascript函数代码:

function updateTextInput(val) {
  document.getElementById('textInput').value=val; 
}

下面是调用该函数的表格单元格的代码:

<pre>
&lt;td&gt;&lt;input size='3' type='range' name=\"qty[{$row['product_id']}]\" min='0' max='".$stock."' onchange='updateTextInput(this.value);'&gt;
        &lt;input id='textInput' size='3' readonly value=\"{$_SESSION['cart'][$row['product_id']]['quantity']}\"&gt;&lt;/td&gt;
</pre>

谢谢你的帮助。

qacovj5a

qacovj5a1#

ID的DOM元素在整个页面上必须是唯一的。

<td>
    <input size='3' type='range' name=\"qty[{$row['product_id']}]\" min='0' max='".$stock."' onchange='updateTextInput(this.value, {$row['product_id']});'>
    <input id='textInput_{$row['product_id']}' size='3' readonly value=\"{$_SESSION['cart'][$row['product_id']]['quantity']}\">
</td>

并修复javascript:

function updateTextInput(val, product_id) {
    document.getElementById('textInput_' + product_id).value = val; 
}

相关问题