Javascript 自动插入编辑器\n
我的问题在于Javascript 自动插入编辑器\n,javascript,ckeditor,Javascript,Ckeditor,我的问题在于CKEditor,它在我提交数据时添加了\n 要获取我正在使用的数据,只需: CKEDITOR.instances['contentBox'].getData() 数据库中提交后的数据示例: <p>\n Heloo<br />\n How are you?</p>\n <p>\n Another Subject<br />\n My name is Luis</p>\n 这里可能出了什么问题 编辑
CKEditor
,它在我提交数据时添加了\n
要获取我正在使用的数据,只需:
CKEDITOR.instances['contentBox'].getData()
数据库中提交后的数据示例:
<p>\n Heloo<br />\n How are you?</p>\n
<p>\n Another Subject<br />\n My name is Luis</p>\n
这里可能出了什么问题
编辑2::
我正在使用CodeIgniter
框架
控制器的一部分:
模型的一部分课程\u模型
:
编码:UTF-8
数据库中的字段content
定义为TEXT
我删除了一些验证代码等,因为它并不重要。看起来这可能是您的解决方案:
看起来这可能是您的解决方案:
这可能有点遥不可及,但我认为这很可能不是ckEditor的设置(因为我过去广泛使用ckEditor,没有遇到这样的问题),而是一个特性(将
字符10
和字符13
更改为\n
符号)您正在使用的ajax库或数据库库。无论哪种方式,都要记录并检查chr(13)
首先被\n
替换的位置,如果它在ajax库中,那么只需要在php代码中重新解析它,如果它在数据库脚本中,则需要在其中的某个位置进行更改(我不会太惊讶,因为我知道有些人更喜欢在数据库中没有像换行符这样的“隐藏”字符)当然,这个答案只有在你试图使换行符的格式有效的情况下才有效,如果你根本不关心换行符Lee Taylor
的话,答案才是应该去的地方。这可能有点遥不可及,但我认为这很可能不是一个ckEditor设置(正如我在过去广泛使用ckEditor,并且没有遇到这样的问题),而是您正在使用的ajax库或数据库库的一个特性(将字符10
和字符13
更改为\n
符号)。无论哪种方式,都要记录并检查哪个点chr(13)
首先被\n
替换,如果它在ajax库中,则只需要在php代码中解析它,如果它在数据库脚本中,则需要在其中的某个位置对其进行更改(我不会太惊讶,因为我知道有些人更喜欢在数据库中没有像换行符这样的“隐藏”字符)。当然,只有当您试图使换行符的格式有效时,如果您根本不关心换行符Lee Taylor
的话,这个答案才有效。请参阅此ckeditor输出格式化程序:
此外,此答案可能会有所帮助:请参阅此ckeditor输出格式化程序: 这个答案也可能有帮助:这可能会有帮助
CKEDITOR.on( 'instanceReady', function( ev )
{
ev.editor.dataProcessor.writer.setRules( 'p',
{
indent : false,
breakBeforeOpen : true,
breakAfterOpen : false,
breakBeforeClose : false,
breakAfterClose : true
});
});
这可能会有帮助
CKEDITOR.on( 'instanceReady', function( ev )
{
ev.editor.dataProcessor.writer.setRules( 'p',
{
indent : false,
breakBeforeOpen : true,
breakAfterOpen : false,
breakBeforeClose : false,
breakAfterClose : true
});
});
我知道这是一个老话题,但我也面临同样的问题,只是想分享我的解决方案 我使用jquery的ajax方法将数据发布到我的php脚本中,内容特征线更改为\n 这是我的(变通)解决方案,在将数据解析到数据库之前,我在php脚本中执行此操作:
if (strpos($content,'\n') !== false) {
$content = str_replace('\n', chr(13), $content);
}
我知道这是一个老话题,但我也面临同样的问题,只是想分享我的解决方案 我使用jquery的ajax方法将数据发布到我的php脚本中,内容特征线更改为\n 这是我的(变通)解决方案,在将数据解析到数据库之前,我在php脚本中执行此操作:
if (strpos($content,'\n') !== false) {
$content = str_replace('\n', chr(13), $content);
}
问题没有在那里解决。他说他在获取数据时使用了
nl2br()
。我只想在插入数据库之前删除“\n”。我已经在代码中使用了
或
。问题没有在那里解决。他说他使用了nl2br()
获取数据时。我只想在插入数据库之前删除“\n”。我已经在代码中添加了
或
。首先感谢您,经过一些测试后,问题并不是您所说的CKEditor。我想这是Ajax的问题(我正在使用jQuery)因为如果我不使用ajax,这个动作会很好地工作。不管怎样,ajax代码非常简单(我编辑了我的主要帖子并将其发布在那里)…我看不出代码有任何问题,你有什么建议吗?在这种情况下,你应该简单地在后端解析它。顺便说一句,你是否可能使用GET而不是POST请求,因为在GET请求中,断行字符是不可能确定的。首先,谢谢你,经过一些测试后,问题不是你所说的CKEditor。我认为这与Ajax有关(我使用jQuery来实现这一点),因为如果我不使用Ajax,操作会很好地工作…我看不出代码有任何问题,你有什么建议吗?在这种情况下,你应该简单地在后端解析它。顺便说一句,你是否可能使用GET而不是POST请求,因为在GET请求中,断行字符是不可能确定的。你能显示你在db中处理和存储数据的部分吗?字符13 Is只是\n但是如果它们在数据库中显示为文字\n。可能是您处理数据的方式有问题。添加。我看不出代码有任何问题,但可能我遗漏了一些东西。验证代码是否更改$data['content']?另外,如果magic_quotes处于启用状态,我想它可能会导致\n字符与mysql_real_escape_字符串相结合。对此我不确定。但它是否处于启用状态?我已使用的建议清理了您的AJAX代码。如果这有助于让我知道。干杯!您可以显示在db中处理和存储数据的部分吗?字符13只是\n但如果y在数据库中显示为文字\n。可能是您处理数据的方式有问题。添加了。我看不出代码有任何问题,但可能我缺少了一些
if (strpos($content,'\n') !== false) {
$content = str_replace('\n', chr(13), $content);
}