我有一个带有注释部分的表单,该表单使用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; ?>
哪个可以解决问题!!
答案 0 :(得分:1)
所以,我为您创建了我认为您想要的小提琴。
值得注意的是,您应该使用以下方法从CKeditor获取/设置数据(当然,当动态获取/设置数据时):
CKEDITOR.instances.notes_c.getData();
CKEDITOR.instances.notes_c.setData(data_string);
notes_c
-是CKeditor所在的div的ID /名称/类。
如果还有其他问题,请随时提出。
编辑:小提琴链接已断开,现已修复。还添加了另一个按钮,以同时显示getData和setData。
EDIT2 :抱歉,我确实误解了您的问题。因此,使用javascript,我将使用AJAX从您的数据库(<p>Paragraph 1</p><p>Paragraph 2</p>
)接收数据,然后像在JsFiddle
请注意,通过使用PHP,如果HTML标记未正确关闭或格式错误,则在您要插入的文本之前,PHP将附加到格式错误的HTML上,并且可以将您的字符串解释为仅字符串,而忽略里面的HTML标签。