我一直试图弄清楚这件事,我不知道自己做错了什么,或者我错过了什么。
我试图传递一个字符串,其中包含我从数据库中检索到的双引号,以便在textarea
中显示。
情境样本如下:
<?php
$content = '<div align="center"><b>This is a sample content.</b></div>';
echo '<textarea id="myTextArea"></textarea>';
echo '<button onclick="myFunction('.$content.')">Click me</button>';
?>
<script>
function myFunction(content){
document.getElementById("myTextArea").innerHTML = content;
}
</script>
预期结果应该是 myTextArea 应该包含文本,但结果显示:
非常感谢您的帮助。
答案 0 :(得分:1)
您应该使用htmlspecialchars()引用您的输出,如下所示:
<?php
$content = "<div align=\"center\"><b>This is a sample content.</b></div>";
echo '<textarea id="myTextArea"></textarea>';
echo '<button onclick="myFunction(\''.htmlspecialchars($content).'\')">Click me</button>';
?>
<script>
function myFunction(content){
document.getElementById("myTextArea").innerHTML = content;
}
</script>
答案 1 :(得分:0)
您需要在字符串中转义引号:
$content = "<div align=\"center\"><b>This is a sample content.</b></div>";
在这种情况下你也可以使用撇号,比如
$content = "<div align='center'><b>This is a sample content.</b></div>";
或
$content = '<div align="center"><b>This is a sample content.</b></div>';
编辑:
另外,请确保将内容用作字符串:
echo '<button onclick="myFunction(\''.$content.'\')">Click me</button>';