我正在显示在线用户。当我单击其中一个用户时,相应的用户应显示在下面的文本框中。我为此使用了 javascript,但它只占用了第一个用户。当我单击第二个用户时,第一个用户显示在下面的文本框中。为什么只取第一个数组?
<?php
foreach($query as $row)
{
?>
<input type="text" name="user" id="user" value="<?php echo $row->users;?> onclick="select_online()">
<?php
}
?>
<script>
function select_online()
{
var user=document.getElementById("user").value;
document.getElementById("usersonline").value=user;
}
</script>
Name:<input type="text" name="usersonline" id="usersonline">
最佳答案
首先,对许多元素使用相同的 id 是错误的。您应该为生成的输入制作不同的 id
属性。
其次,您应该使用this
来获取当前元素的值:
function select_online()
{
var user=this.value;
document.getElementById("usersonline").value=user;
}
document.getElementById("user")
语句将始终选择 id
属性等于“user”的元素,并且始终相同。很可能,这不是您想要的。如果我没理解错的话,你想获得被点击元素的 value
,所以正如我之前提到的,你可以使用 this
表达式来实现它,它指向当前被点击的元素元素。
关于循环内的javascript函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32920089/