使用SQLite我可以列出
中的值<div class="text-middle">
<?php foreach($result as $row) ?>
<button class="button button1" id="myBtn" value="<?php echo $row['Id']; ?>" onclick="myFunction()"><?php echo $row['Id']; ?></button>
<?php } ?>
</div>
然而,当我点击按钮时,它只显示弹出警报中的第一个值。
function myFunction() {
var x = document.getElementById("myBtn").value;
alert(x);
}
如何在每个按钮中获取相应的值?
答案 0 :(得分:6)
您的所有按钮都具有相同的INSERT INTO RECORDS_HISTORY (RECORDS_ID, LOG_DATE, LOG_TYPE, MESSAGE) VALUES (<records.id>, sysdate(), 'CREATED', 'Record created')
属性。它们在页面中必须是唯一的。要解决此问题,您可以删除_HISTORY
属性并将按钮的引用传递给函数:
id
id
更好的做法是在所有按钮上放置相同的<div class="text-middle">
<?php foreach($result as $row) { ?>
<button class="button button1" value="<?php echo $row['Id']; ?>" onclick="myFunction(this)"><?php echo $row['Id']; ?></button>
<?php } ?>
</div>
并使用不显眼的JS代码来附加事件处理程序,如下所示:
function myFunction(el) {
var x = el.value;
console.log(x);
}
class
答案 1 :(得分:0)
不要对一个元素使用相同的id:id =&#34; myBtn&#34;
更改您的功能:
onclick="myFunction()"
为:
onclick="myFunction(this)"
所以:
function myFunction(element) {
var x = element.value;
alert(x);
}
答案 2 :(得分:0)
你需要按类来获取元素,而不是它们共享的id(这是一件坏事)。
<script>
function myFunction() {
var x = document.getElementsByClassName("button1");
for (var i = 0; i < x.length; ++i) {
alert(x[i].value);
}
}
</script>