while($ row = mysqli_fetch_array($ result))+ JAVASCRIPT错误

时间:2019-05-24 09:19:15

标签: javascript php mysql

我对某些代码有疑问。该程序使我可以一键复制BDDMysql上要求的密码。我有一个脚本,可让我使用特定的ID复制html标签<P>的内容。所有这些我都放在while(mysqli_fetch_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
}
?>

2 个答案:

答案 0 :(得分:1)

您不能有重复的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
}
?>

答案 1 :(得分:0)

<?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>

您正在尝试循环脚本。脚本只能声明一次。
<table>之后移动while循环。