while($row=mysqli_fetch_array($result))&x2B;JAVASCRIPT错误

while($row=mysqli_fetch_array($result))&x2B;JAVASCRIPT错误,javascript,php,mysql,Javascript,Php,Mysql,我对一些代码有问题。该程序允许我在BDDMysql上一次点击一个密码进行复制。我有一个脚本,允许我用一个特定的ID复制html标记的内容。所有这些我都是在while(mysqli\u fetch\u array($result))中得到的。所以问题是,当我点击复制一个密码时,只有我得到了剪贴板上复制的第一个bdd <?php $egest='SELECT * FROM gestion'; $result=mysqli_query($con,$egest); while ($row = m

我对一些代码有问题。该程序允许我在BDDMysql上一次点击一个密码进行复制。我有一个脚本,允许我用一个特定的ID复制html标记

的内容。所有这些我都是在
while(mysqli\u fetch\u array($result))
中得到的。所以问题是,当我点击复制一个密码时,只有我得到了剪贴板上复制的第一个bdd

<?php

$egest='SELECT * FROM gestion';
$result=mysqli_query($con,$egest);
while ($row = mysqli_fetch_array($result)){
//echo $row['subcat_nombre'];
?>

<script>
    function copyToClipboard(element) {
      var $temp = $("<input>");
      $("body").append($temp);
      $temp.val($(element).text()).select();
      document.execCommand("copy");
      $temp.remove();
    }
</script>

<table class="estilo-ps">
    <tr>
    <td colspan="3" class="td-tit"><b><?php echo $row['gest_nombre'] ?></b></td>
  </tr>
  <tr class="tr-borders">
    <th class="th-border-cent">Contrasenya</th>
  </tr>
  <tr class="tr-borders">
    <td class="td-border-cent">
        <center>
            <p hidden="hidden" id="p1"><?php echo $row['gest_contra']; ?></p><br>
            <p>clic per copiar la contrasenya</p>
            <img src="img/key.png" class="copy" onclick="copyToClipboard('#p1')"/>
        </center>
    </td>
 </tr>
<?php
}
?>

功能copyToClipboard(元素){
变量$temp=$(“”);
$(“正文”)。追加($temp);
$temp.val($(element.text()).select();
文件。执行命令(“副本”);
$temp.remove();
}
康特塞尼亚


您不能有重复的ID。使用类而不是ID。然后使用适当的DOM选择函数在单击的元素旁边查找具有该类的元素

另外,将函数从循环中去掉,它不需要为每一行重新定义

<script>
    function copyToClipboard(img) {
      var $element = $(img).siblings(".p1");
      var $temp = $("<input>");
      $("body").append($temp);
      $temp.val($element.text()).select();
      document.execCommand("copy");
      $temp.remove();
    }
</script>

<?php

$egest='SELECT * FROM gestion';
$result=mysqli_query($con,$egest);
while ($row = mysqli_fetch_array($result)){
//echo $row['subcat_nombre'];
?>


<table class="estilo-ps">
    <tr>
    <td colspan="3" class="td-tit"><b><?php echo $row['gest_nombre'] ?></b></td>
  </tr>
  <tr class="tr-borders">
    <th class="th-border-cent">Contrasenya</th>
  </tr>
  <tr class="tr-borders">
    <td class="td-border-cent">
        <center>
            <p hidden="hidden" class="p1"><?php echo $row['gest_contra']; ?></p><br>
            <p>clic per copiar la contrasenya</p>
            <img src="img/key.png" class="copy" onclick="copyToClipboard(this)"/>
        </center>
    </td>
 </tr>
</table>
<?php
}
?>

功能copyToClipboard(img){
变量$element=$(img).同级(“.p1”);
变量$temp=$(“”);
$(“正文”)。追加($temp);
$temp.val($element.text()).select();
文件。执行命令(“副本”);
$temp.remove();
}
康特塞尼亚


功能copyToClipboard(元素){
变量$temp=$(“”);
$(“正文”)。追加($temp);
$temp.val($(element.text()).select();
文件。执行命令(“副本”);
$temp.remove();
}
while($row=mysqli\u fetch\u数组($result)){
//echo$row['subcat_nombre'];
?>
康特塞尼亚

您正在尝试循环脚本。脚本只应声明一次。

将while循环移动到

之后在循环中定义函数没有意义。函数只能有一个定义,每次只需替换它。id必须唯一,不能有多个
id=“p1”
$(元素)
将始终返回第一行,而不是用户单击的同一行。您有一个
标记,但没有
。是否确实要为查询返回的每一行创建单独的表?好的,下次做笔记。谢谢!
<?php

$egest='SELECT * FROM gestion';
$result=mysqli_query($con,$egest);
?>

<script>
    function copyToClipboard(element) {
      var $temp = $("<input>");
      $("body").append($temp);
      $temp.val($(element).text()).select();
      document.execCommand("copy");
      $temp.remove();
    }
</script>

<table class="estilo-ps">
while ($row = mysqli_fetch_array($result)){
//echo $row['subcat_nombre'];
?>
    <tr>
    <td colspan="3" class="td-tit"><b><?php echo $row['gest_nombre'] ?></b></td>
  </tr>
  <tr class="tr-borders">
    <th class="th-border-cent">Contrasenya</th>
  </tr>
  <tr class="tr-borders">
    <td class="td-border-cent">
        <center>
            <p hidden="hidden" id="p1"><?php echo $row['gest_contra']; ?></p><br>
            <p>clic per copiar la contrasenya</p>
            <img src="img/key.png" class="copy" onclick="copyToClipboard('#p1')"/>
        </center>
    </td>
 </tr>
<?php
}
?>
</table>