i有一个表单,其中包含使用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; ?>
解决问题!!
所以,我为您创建了一个小提琴,我认为您的意图。
值得注意的是,您应该使用这些方法从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中所做的事情
确实要注意,如果使用html标签错误地关闭或畸形,则在您要插入的文本之前,PHP将附加到不良形成的HTML上,并且可以将您的字符串解释为字符串,而忽略您的字符串内部的HTML标签。
我遇到了同样的问题。我已经通过手动将逃生代码转换为普通字符来解决它。