while循环创建行,但是在函数下面只选择第一行td的值并放入文本框,我希望它选择已被点击的td的值。不是第一个。请帮忙
while($row = $result->fetch_assoc()){
<tr>
<td id='tbltd' onclick='getstock_id();'>",$row["stock_id"],"</td></tr>
}
<script>
function getstock_id() {
var myBox1 = document.getElementById("ab").innerHTML;
var result = document.getElementById('stk');
result.value = myBox1;
}
</script>
答案 0 :(得分:1)
您不应该在文档中使用具有相同值的多个
中选择了第一个元素id
。在您的情况下,在document.getElementById("ab").innerHTML
试试这个:
<?php
while($row = $result->fetch_assoc()){
?>
<tr>
<td id='tbltd' onclick='getstock_id("<?php echo $row["stock_id"]; ?>");'><?php echo $row["stock_id"]; ?></td></tr>
<?php
}
?>
<script>
function getstock_id(val) {
var result = document.getElementById('stk');
result.value = val;
}
</script>
答案 1 :(得分:0)
尝试将函数参数传递给节点引用,如下所示:
while($row = $result->fetch_assoc()){
<tr>
<td id='tbltd' onclick='getstock_id(this);'>",$row["stock_id"],"</td></tr>
}
<script>
function getstock_id(refNode) {
document.getElementById('stk').value = refNode.innerHTML;
}
</script>