我正在使用 ajax 收集 CKEditor 内容并将其提交到服务器。一旦提交后我查看它,所有 html 标签 < 和 > 都已转换为它们的 html 实体。这不是我想要的,因为我显然需要保留 HTML。
是不是我做错了什么?
几个问题:
我使用 jQuery + validate(表单验证插件)提交表单。
CKEditor 绑定的文本区域名为body。
由于某些奇怪的原因,当我提交表单时,根本没有提交内容。查看 HTML 我发现文本区域没有被 CKEditor 填充(不要问我为什么)。
我所做的是在提交之前,手动从 CKEditor 获取数据并将其存储到 textarea 中。一行 jquery 就足够了。
$( '#body' ).val( CKEDITOR.instances.body.getData() );
然后继续正常提交表单。jQuery 有一个非常好的数据序列化方法——一个叫做serialize()的函数,我用它把整个表单的数据转换成一个字符串。在 PHP 端,这个字符串会自动转换为$_POST数组的成员。
您应该尝试相同的方法,看看它是否适合您。
如果您仍然卡住,请在此处发布您的代码。
干杯,m^e
最后我意识到我的服务器没有以 UTF-8 保存数据,即使 ajax 以这种方式发送数据。所以,我解决了这个问题,数据正确保存。
正确的是在配置中设置这个实体:false