数据库条目中的html标签未呈现为html

时间:2019-02-28 10:52:00

标签: javascript php html mysql ckeditor

我有一个带有注释部分的表单,该表单使用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>

两者之间的区别在于,正确显示的是“中文字”类型,而不正确显示的是“文字”类型。加上显示不正确的那一个是使用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; ?>

哪个可以解决问题!!

1 个答案:

答案 0 :(得分:1)

所以,我为您创建了我认为您想要的小提琴。

值得注意的是,您应该使用以下方法从CKeditor获取/设置数据(当然,当动态获取/设置数据时):

CKEDITOR.instances.notes_c.getData();
CKEDITOR.instances.notes_c.setData(data_string);

notes_c-是CKeditor所在的div的ID /名称/类。

如果还有其他问题,请随时提出。

编辑:小提琴链接已断开,现已修复。还添加了另一个按钮,以同时显示getData和setData。

JSFiddle

EDIT2 :抱歉,我确实误解了您的问题。因此,使用javascript,我将使用AJAX从您的数据库(<p>Paragraph 1</p><p>Paragraph 2</p>)接收数据,然后像在JsFiddle

中那样做

请注意,通过使用PHP,如果HTML标记未正确关闭或格式错误,则在您要插入的文本之前,PHP将附加到格式错误的HTML上,并且可以将您的字符串解释为仅字符串,而忽略里面的HTML标签。