创建一个标有 PHP 项的按钮以插入另一个 PHP 项


Creating a button labeled with one PHP item to insert another

很简单,我正在为一个网站创建一个PHP内容数据库。我想在文本字段旁边创建按钮,其标题是从表格中提取的。单击此按钮,然后将等效代码插入到字段中。这些 PHP 表由三列组成:键、字和代码

到目前为止,我有以下代码...这确实填充了按钮值,但不插入代码。我怀疑这是由于在PHP代码中使用了''。我说的对吗?

感谢任何指导

<html>
<head>
    <title>Title</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <script type="text/javascript">
      function insertText(elemID, text)
      {
        var elem = document.getElementById(elemID);
        elem.innerHTML += text;
      }
    </script>
  </head>
  <body>
  <form>
    <textarea id="txt1"></textarea>
    <input type="button" value="<?php echo $row_tooltips['word']; ?>" onclick="insertText('txt1', '<?php echo $row_tooltips['code']; ?>');">
    </form>
  </body>
</html>
<html>
<head>
    <title>Title</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <script type="text/javascript">
      function insertText(elemID, text)
      {
        var elem = document.getElementById(elemID);
        elem.innerHTML += text;
      }
    </script>
  </head>
  <body>
  <form>
<?php
$row_tooltips['word'] = "buttontitle";
$row_tooltips['code'] = "code";
?>
    <textarea id="txt1"></textarea>
    <input type="button" value="<?php echo $row_tooltips['word']; ?>" onclick="insertText('txt1', '<?php echo $row_tooltips['code']; ?>');">
    </form>
  </body>
</html>

没有更改您的代码,但预定义了 $row_tooltips 数组,它对我来说完全没问题。您确定此数组已正确填充吗?

问候语

所以你说:

我试图实现的是一个按钮来插入一些HTML代码,所以当用户点击按钮时,一个完整的链接会包含在PHP文本字段中。

那么,如果字符串中有一个被回显的 ',你的脚本就会中断。还有任何其他htmlspecialchars,特别是" 你遇到问题;所以你需要逃避它。

此外,文本区域中的htmlcode是不可能的,因此您可能应该将其设置为div(如果需要,可以在内部使用文本框)。

基于您的原始代码,下面是一个工作正常的代码。我使用htmlspecialchars作为纯文本,addslashes用于您的html(',因为编码它们不起作用)。

<?php
    // Remove this, only for testing
    $row_tooltips['word'] = "Insert a FooBar";
    $row_tooltips['code'] = "<h1>Delicious 'FooBar'</h1><img src='"http://thumbs.dreamstime.com/x/reep-chocolade-12835946.jpg'" alt='"foobar'" />";
?>
<html>
<head>
    <title>Title</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <script type="text/javascript">
      function insertText(elemID, text)
          {
            var elem = document.getElementById(elemID);
            elem.innerHTML += text;
          }
     </script>
</head>
<body>
    <form>
        <div id="txt1"></div>
        <input type="button" value="<?php echo htmlspecialchars($row_tooltips['word'], ENT_QUOTES, 'ISO-8859-1'); ?>" 
            onclick="insertText('txt1', '<?php echo addslashes(htmlspecialchars($row_tooltips['code'], ENT_COMPAT, 'ISO-8859-1')); ?>');">
    </form>
</body>
</html>

在铬中测试。