Javascript 数据库项中的html标记未呈现为html
我有一个表单,其中有一个notes部分,用于在提交到MySQL数据库时分隔段落。因此,将提交以下两段:Javascript 数据库项中的html标记未呈现为html,javascript,php,html,mysql,ckeditor,Javascript,Php,Html,Mysql,Ckeditor,我有一个表单,其中有一个notes部分,用于在提交到MySQL数据库时分隔段落。因此,将提交以下两段: <p>Paragraph 1</p><p>Paragraph 2</p> 第1段第2段 我的问题是,当这些数据显示在网页上时,HTML标记也没有像我预期的那样被读取为HTML。当我在Dev工具中查看页面时,它在第一个和最后一个HTML标记外显示引号,如下所示。这表示标记被视为文本 “<p>Paragraph 1</p>
<p>Paragraph 1</p><p>Paragraph 2</p>
第1段第2段
我的问题是,当这些数据显示在网页上时,HTML标记也没有像我预期的那样被读取为HTML。当我在Dev工具中查看页面时,它在第一个和最后一个HTML标记外显示引号,如下所示。这表示标记被视为文本
“<p>Paragraph 1</p><p>Paragraph 2</p>”
“第1段第2段”
我在另一个网站上也做了同样的事情,但这次效果很好,并且正确地呈现了HTML标记。当我在Dev工具中查看这一点时,它会在每个段落的HTML标记内显示引号,如下所示。毫不奇怪,这些标签被视为HTML
<p>”Paragraph 1”</p><p>”Paragraph 2”</p>
“第1段”“第2段”
两者之间的区别在于,正确显示的是“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>
CKEDITOR.replace('notes_c');
非常感谢任何有助于了解这里发生的事情
对此的更新是,我已尝试使用html_entity_decode进行以下操作:
<?php
$note = $rsCurrentEnquiry->getColumnVal("notes_c");
$p = html_entity_decode($note);
?>
<?php echo $p; ?>
这就解决了问题 所以,我为你做了一把小提琴,我认为你是有意的 值得注意的是,您应该使用以下方法从CKeditor获取/设置数据(当然,在动态获取/设置数据时):
notes\u c
-是CKeditor所在div的id/name/class
如果有任何其他问题,请随时提问
编辑:小提琴链接已断开,现在已修复。还添加了另一个按钮来显示getData和setData
EDIT2:对不起,我确实误解了你的问题。因此,使用javascript,我将使用AJAX从数据库接收数据(第1段第2段
),然后执行与本文类似的操作
请注意,通过使用PHP,如果HTML标记在要插入的文本之前被错误地关闭或格式不正确,那么PHP将附加到格式错误的HTML中,并且可以将您的字符串解释为一个字符串,而忽略其中的HTML标记 这与mediumtext vs text无关,它们只是不同最大长度的文本数据类型。更可能的是,这与数据库内容输出到页面的确切方式有关!另外,它可能与您如何使用ckeditor有关,您是否使用setData()方法?谢谢@04FS的回复。我所做的就是查询数据库并如下显示:
感谢@H.Figueiredo的回复。我所做的就是使用插件的基本安装来使用它的功能。我已经查看了文档,我不确定如何使用setData()方法来帮助解决这个问题。如果您发布更多代码(特别是javascript),这会很有帮助。setData()是一个接收字符串并用字符串填充CKeditor的方法(它尊重html标记,因此它们应该有效)没有问题!如果答案符合您的需要,请将其标记为正确,我将不胜感激。您使用一个按钮,该按钮通过单击将notes的一个实例放入
中来调用函数。我不知道我怎么能适应这个。我有文本区和ckeditor提交到数据库。然后我查询数据库并将数据显示在一个表中
在哪里或如何将该函数应用于此?哦!是否要将检索到的文本放在表中?嗯,那么每一段都是一列?或者只是每个单元格都有来自ckeditor的值?我认为它在表中的事实可能会产生误导。它只是出于样式的目的,与使用来自同一查询的不同数据绑定的其他表一样。如果你看到我上面的样品。您将看到显示notes\u c绑定的表是一行,其中包含一列。因此,显示数据的
标记也可能是
,我认为问题也会是一样的。希望这有意义。是的,有意义,检查edit2!你的意思是让我觉得你的问题是HTML格式不正确,比如一个未关闭的标签,诸如此类的东西。
CKEDITOR.instances.notes_c.getData();
CKEDITOR.instances.notes_c.setData(data_string);