将Echo PHP中的Jquery参数包含在Row

时间:2019-03-07 16:52:35

标签: php jquery html sql

你好我已经尝试了好几天了。

我想做的是回显测试,然后创建一个将回显的文本复制到剪贴板的按钮。

所以我想要的是我有一个SQL列表,在该列表中有一个ID行,我可以将其传递给段落中的echo,但是当我尝试对参数执行相同操作时,#似乎出现了问题

while($row = mysqli_fetch_array($result)) {
   echo "<div>";
   echo "  <p id='" . $row['ID'] . "'>" . $row['Message'] . "</p>";
   echo '<button onclick="copyToClipboard('. $row['Title'] . ')">Copy TEXT 2</button>';
   echo "  </div>";
}

它也以某种方式生成参数,但是之间有一个空格 (“#om2”)“

  • 我的SQL
  • ID = OM2
  • 标题=“#OM2”
  • 消息= some3ohruihrgfijbfgbrfghrgjikbnhjergbnergbg

非常感谢您的帮助

编辑。

脚本

<script type="text/javascript">
function copyToClipboard(element) {
  var $temp = $("<textarea>");
  $("body").append($temp);
  var html = $(element).html();
  html = html.replace(/<br>/g, "\n"); // or \r\n
  console.log(html);
  $temp.val(html).select();
  document.execCommand("copy");
  $temp.remove();
}


</script>

带有echo '<button onclick=\"copyToClipboard(' . $row['Title'] . ')>Copy TEXT 2</button>';

Image!!!

1 个答案:

答案 0 :(得分:0)

您正尝试通过#OM2函数作为参数{} ...

缺少一些引号使它成为字符串。实际上,copyToClipboard()不是。

尝试添加一些#OM2

\'

应该可以...但是我建议一个更好的选择...
使用类来处理click事件,而不是内联echo '<button onclick="copyToClipboard(\''. $row['Title'] . '\')">Copy TEXT 2</button>';

onclick

然后您的剪贴板复制脚本将简单地是:

while($row = mysqli_fetch_array($result)) {
   echo "<div>";
   echo "  <p id='" . $row['ID'] . "'>" . $row['Message'] . "</p>";
   echo '<button class="copy">Copy TEXT 2</button>';
   echo "  </div>";
}


这是一个片段;)
$(".copy").on("click",function(){
  var text = $(this).prev("p").html().replace(/<br>/g, "\n");
  navigator.clipboard.writeText(text);
});
$(".copy").on("click",function(){
  var text = $(this).prev("p").html().replace(/<br>/g, "\n");
  navigator.clipboard.writeText(text);
});