很简单,我正在为一个网站创建一个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>
在铬中测试。