仅显示while循环中来自JavaScript的最后一个值

时间:2019-09-22 06:13:11

标签: javascript php

我正在处理从数据库接收到的while循环数据中显示的代码。在该代码中,有一种形式,我在其中添加了隐藏的输入(名称=“ position”)。我想使用该输入来存储窗口顶部的像素数。不幸的是,我添加的javascript仅在循环的最后一个表中更改了隐藏输入的值。在前几张表中,名为“ position”的隐藏输入保持不变(保持为空)。谁能帮我吗?

<?php
while ($row = $wynik->fetch_assoc()) {
?>          

<form method="post" style="margin-bottom: 0px;" onsubmit="poz()">
<input type="hidden" name="edition" value="<?php echo $row["id"]; ?>">
<input type="hidden" id="<?php echo $row["id"]; ?>" name="position" value="">
<input type="submit" value="Edytuj" class="edytuj">
</form>

<script>
function poz() {
var position = window.pageYOffset;
document.getElementById(<?php echo $row["id"]; ?>).value = position;
}
</script>

1 个答案:

答案 0 :(得分:0)

您需要添加一个事件监听器,以了解单击了什么

window.addEventListener("load",function() {
  [...document.querySelectorAll(".edytuj")].forEach(function(elem) {
    elem.addEventListener("click",function (e) {
      var tgt = e.target;
      tgt.previousElementSibling.value=tgt.offsetTop;
    })
  });
})
<input type="hidden" name="edition" value="<?php echo $row["id"]; ?>">
<input type="hidden" id="<?php echo $row["id"]; ?>" name="position" value="">
<input type="button" value="Edytuj" class="edytuj">
相关问题