【发布时间】:2019-07-22 06:24:15
【问题描述】:
我有一个带有注释部分的表单,它使用ckeditor,以便在提交到 MySQL 数据库时将段落分开。所以两个段落将提交如下:
<p>Paragraph 1</p><p>Paragraph 2</p>
我的问题是,当这些数据显示在网页上时,HTML 标签也没有像我预期的那样被读取为 HTML。当我在开发工具中查看页面时,它会在第一个和最后一个 HTML 标记之外显示引号,如下所示。这表明标签被视为文本。
“<p>Paragraph 1</p><p>Paragraph 2</p>”
我在另一个网站上做同样的事情,但这次工作正常并且可以正确呈现 HTML 标记。当我在开发工具中查看它时,它会在每个段落的 HTML 标记内显示引号,如下所示。毫不奇怪,这些标签被视为 HTML。
<p>”Paragraph 1”</p><p>”Paragraph 2”</p>
两者的区别在于能正常显示的是“mediumtext”类型,不能正常显示的是“text”类型。再加上显示不正确的是使用了ckeditor插件。
我只是简单地使用以下添加ckeditor功能:
<textarea rows='4' type="text" class="notes_c" id="notes_c"
name="notes_c" value=""></textarea>
<script type="text/javascript" src="../ckeditor/ckeditor.js"></script>
<script>
CKEDITOR.replace('notes_c');
</script>
非常感谢任何帮助了解这里发生的事情。
对此的更新是我尝试使用 html_entity_decode 和以下内容:
<?php
$note = $rsCurrentEnquiry->getColumnVal("notes_c");
$p = html_entity_decode($note);
?>
<?php echo $p; ?>
解决问题!!
【问题讨论】:
-
这与 mediumtext vs text 无关,它们只是最大长度不同的文本数据类型。这更有可能与数据库内容输出到页面的方式有关。
-
@04FS 说了什么!此外,它可能与您使用 ckeditor 的方式有关,您使用的是 setData() 方法吗?
-
感谢@04FS 的回复。我所做的只是查询数据库并显示如下:
<tbody> <tr> <td class="details"><?php echo ($rsCurrentEnquiry->getColumnVal('notes_c')); ?></td> </tr> </tbody> -
谢谢@H。菲格雷多为您的回应。我所做的只是使用插件的基本安装来使用它的功能。我检查了文档,但不确定如何使用 setData() 方法来帮助解决问题。
-
如果您发布更多代码(特别是 javascript)会很有帮助。 setData() 是接收字符串并用字符串填充 CKeditor 的方法(它尊重 html 标签,因此它们应该有效)
标签: javascript php html mysql ckeditor