繁体   English   中英

在PHP循环中使用javascript onclick

[英]Use javascript onclick in a while PHP 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']; ?>" id="<?php echo $row['id']; ?>_count"><br>
     <input type="button" value="-" id="minus" onclick="minus()">
     <input type="button" value="+" id="plus" onclick="plus()">
}

使用Javascript:

<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>

没用 我只需要第一个id数量框。 无法管理ID应当不同的第二个数量框。 如您所见,我为每个id标记分配了不同的名称,这些名称取自数据库id。

工作提琴

发生这种情况是因为您有重复的ID,而id属性应该是唯一的。

请改用通用类。

正在为脚本中的每一行生成ID id_part。 当您单击按钮时,它将找到id_part的实例及其第一个值,并编辑其值。

使用唯一的ID说id='id_part' +<?php echo $row['id']; ?> id='id_part' +<?php echo $row['id']; ?>

实际上,您的“隐藏字段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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM