You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP项目中textarea输入内容前端重复显示问题求助(CKEditor引入后引发异常)

问题排查与解决方案

从你的描述和代码片段来看,问题的根源不在数据存储环节(你也确认数据库内容正常),而是在前端的内容显示逻辑上,同时CKEditor的特性放大了这个问题。

1. 核心问题:内容重复显示的原因

看你notifications.php中显示name字段的这段代码:

<td class="pt-2"><?= $longString=$row['name']; $link = $row['id']; $longStringshortcut = strlen($longString); 
//echo substr($longString, 0, 100).'... <a href="$link">Read More</a>'; 
if ($longStringshortcut > 250) { 
    echo substr($longString, 0, 250).".. <a href='details.php?details=$link'><strong>Preberi več...</strong></a>"; 
} else { 
    echo $longString; 
} ?>

这里的<?= $longString=$row['name']; ?>会直接输出$row['name']的值(因为<?=是echo的简写),而当内容长度≤250时,else分支又会echo $longString一次——相当于同一个内容被输出了两遍!

  • 当你用自定义编辑器时,内容没有额外标签,所以看起来就是纯文本重复;
  • 当你引入CKEditor后,编辑器会自动给内容添加<br><br>这类格式标签,加上两次输出,就出现了test <br><br> test的现象;
  • 数据库里的内容是正常的,因为action.php的插入逻辑只存了一次。

2. 修复步骤

只需要修改notifications.php中的显示逻辑,把赋值和输出分开:

<td class="pt-2">
<?php 
$longString = $row['name']; 
$link = $row['id']; 
$longStringshortcut = strlen($longString); 
if ($longStringshortcut > 250) { 
    echo substr($longString, 0, 250).".. <a href='details.php?details=$link'><strong>Preberi več...</strong></a>"; 
} else { 
    echo $longString; 
} 
?>
<a href="details.php?details=<?= $row['id']; ?>" class="badge badge-primary">Details</a>
<a href="action.php?delete=<?= $row['id']; ?>" class="badge badge-danger" onclick="return confirm('Do you want delete this record?');">Delete</a>
<a href="index.php?edit=<?= $row['id']; ?>" class="badge badge-success">Edit</a>
</td>

关键改动是把<?= $longString=$row['name']; ?>换成<?php $longString = $row['name']; ?>,避免在赋值时就输出内容。

3. 关于CKEditor的额外说明

如果之后还要使用CKEditor,建议开启编辑器的内容过滤功能,避免自动添加不必要的<br>标签。你可以在CKEditor的配置中添加:

CKEDITOR.config.enterMode = CKEDITOR.ENTER_P; // 用<p>标签代替自动添加的<br>
CKEDITOR.config.shiftEnterMode = CKEDITOR.ENTER_BR; // 仅在Shift+Enter时插入<br>

这样可以更精准控制内容的格式,减少意外的标签插入。

内容的提问来源于stack exchange,提问作者user14584183

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 18:42:35