在while-PHP循环中使用javascript onclick

在while-PHP循环中使用javascript onclick,javascript,php,while-loop,Javascript,Php,While Loop,我正在尝试加减1,一个简单的数量输入框,它可以不同,如下图所示: PHP: $query = ... while ($row= mysqli_fetch_array($query)) { <input type="hidden" value="<?php echo $row['id']; ?>" id="id_part"> <input type="text" value="<?php echo $row['quantity']; ?&

我正在尝试加减1,一个简单的数量输入框,它可以不同,如下图所示:

PHP:

$query = ...
while ($row= mysqli_fetch_array($query)) 
{
     <input type="hidden" value="<?php echo $row['id']; ?>" id="id_part">
     <input type="text" value="<?php echo $row['quantity']; ?>" id="<?php echo $row['id']; ?>_count"><br>
     <input type="button" value="-" id="minus" onclick="minus()">
     <input type="button" value="+" id="plus" onclick="plus()">
}
<script>
     var count = 1;
     var id = document.getElementById("id_part").value;
     var countEl = document.getElementById(id + "_count");
     function plus(){
      count++;
      countEl.value = count;
     }
     function minus(){
      if (count > 1) {
       count--;
       countEl.value = count;
      }  
     }
</script>
$query=。。。
while($row=mysqli\u fetch\u数组($query))
{

发生这种情况是因为当
id
属性应该是唯一的时候,您有一个重复的id


请改用普通类。

正在为脚本中的每一行生成ID\u部分。 当您单击按钮时,它会找到id_零件的实例及其第一个值,并编辑其值


使用唯一id,比如说
id='id\u part'+

实际上,隐藏字段id应该是唯一的,但它在循环中,并且为所有行返回相同的值

<input type="hidden" value="<?php echo $q; ?>" id="**id_part**">

Try blow changes,
change your inner html as below
<input type="button" value="-" id="minus" onclick="minus(<?php echo $row['id']; ?>)">
<input type="button" value="+" id="plus" onclick="plus(<?php echo $row['id']; ?>)">


<script>
     var count = 1;
     function plus(position){
      count++;
      var countEl = document.getElementById(position + "_count");
      countEl.value = count;
     }
     function minus(position){
      if (count > 1) {
       count--;
       var countEl = document.getElementById(position + "_count");
       countEl.value = count;
      }  
     }
</script>

您使用的是
id
值,这在HTML中无效。请使用唯一的
id
值。为什么不使用输入类型编号来执行此行为?我不喜欢该输入的特性。我将在一行中为所有按钮注册事件:
$(文档)。在('click','button[id^=减号',handler)
并且它可以使用jquery中的
最近的
函数来获取值。到目前为止,除了一个细节之外,我一直在使用它。如果我在第一个数量框中加1,然后在第二个数量框中加1,那么第二个框中的新值将是第一个框+1中的第一个值,而不是第二个框中的第一个值。请在中尝试只要摆弄一下静态id和值,你就会明白我在说什么。