如何传递td的值(由while循环创建)并将其传递给文本框?

时间:2015-11-02 07:04:07

标签: javascript php mysql

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>

enter image description here

2 个答案:

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