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

仅显示while循环中JavaScript的最后一个值,javascript,php,Javascript,Php,我正在处理从数据库接收的while循环数据中显示的代码。在该代码中有一个表单,我在其中添加了一个隐藏输入(name=“position”)。我想使用该输入来存储窗口顶部的像素数。不幸的是,我添加的javascript只在循环的最后一个表中更改隐藏输入的值。在第一个表中,名为“位置”的隐藏输入保持不变(保持为空)。谁能帮帮我吗 <?php while ($row = $wynik->fetch_assoc()) { ?> <form method="p

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

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


您需要添加一个事件侦听器来了解单击的内容

window.addEventListener(“加载”,函数(){
[…document.queryselectoral(“.edytuj”)].forEach(函数(elem){
元素addEventListener(“点击”,函数(e){
var tgt=e.target;
tgt.previousElementSibling.value=tgt.offsetTop;
})
});
})

生成页面后,请查看
pos()
函数的页面源代码,其中可能有多个。首先,请确保
getElementById
中有引号。你记得把它们放在其他地方,但它们仍然不见了。另外,正如刚才指出的,要么为每一行构建单独的函数,要么使用一个函数查找调用它的表单。