使用Javascript在ARRAY中获取PHP变量的问题

问题描述 投票:0回答:1

我在PHP变量的显示上遇到问题。T[0]代表表中的用户名。我想做的是,当我单击某人的名字时,它会在警报上显示该名字。但是,尽管JS函数位于循环内,但我的警报仅在表上显示第一个用户名。

<? 
while($T=mysql_fetch_array($res))
    {
        echo' <tr>      
            <td><img src="data:image/jpeg;base64,'.base64_encode($T[0]).'" class="rounded-circle" height="40" width="40"  />
                <b id="myP" onclick="myFunction()">'.$T[1].'</b></td>
            <td><b>'.$T[2].'</b></td>
            <td><b>'.$T[3].'</b></td>
            <td><b>'.$T[4].'</b></td>
        </tr>

                <script>
    function myFunction() {
  x = document.getElementById("myP").innerHTML;
    alert(x);
    }
</script>

 ' ;
        } 
            ?>  
javascript php arrays while-loop id
1个回答
0
投票

将在所有id="myP"元素上重复使用<b。当您使用document.getElementById("myP")时,它将调用最后一个元素。

要解决这个问题,id =“ ..”必须是唯一的。一种简单的方法与此类似:

<? 
while($T=mysql_fetch_array($res))
    {
        echo' <tr>      
            <td><img src="data:image/jpeg;base64,'.base64_encode($T[0]).'" class="rounded-circle" height="40" width="40"  />
                <b id="myP_' . $T[0] . '" onclick="myFunction()">'.$T[1].'</b></td>
            <td><b>'.$T[2].'</b></td>
            <td><b>'.$T[3].'</b></td>
            <td><b>'.$T[4].'</b></td>
        </tr>

                <script>
    function myFunction() {
  x = document.getElementById("myP_' . $T[0] . '").innerHTML;
    alert(x);
    }
</script>

 ' ;
        } 
            ?>  

现在,它使每个ID成为唯一标识符,因此当您呼叫用户时,它将呼叫您单击的同一用户。

© www.soinside.com 2019 - 2024. All rights reserved.