CKEDITOR内联编辑器没有传递编辑器值

时间:2013-10-30 01:51:25

标签: php ajax ckeditor

我有3个网页,网站内的代码相同。我在3页中有2页取得了成功。 ckeditor实例按预期更新。

我终于想出了“问题是什么”,但仍然不知道如何修复它。似乎如果我只键入一行代码并单击div(即模糊事件发生),它会按预期保存。如果我点击一个硬回车并输入其他文字,那么模糊事件将在硬回车后不会保存任何东西。似乎是这个版本的CKEDITOR中的一个错误。正如我所提到的,我有2个其他页面具有完全相同的代码,一切正常。

<?php 
session_start();
$thisPage = "services";
require('functions.php');
include('header.htm');
?>
<title>Services | Dr. Your Name</title>
<style type="text/javascript">
#cke_body {margin-left:120px;margin-top:30px;width:520px;background-color:gray;}
</style>
<script type="text/javascript">
CKEDITOR.config.filebrowserBrowseUrl= 'browser/browseAdminUploads.php';
CKEDITOR.config.extraPlugins = 'justify';
</script>
</head> 
<body> 
<div id="header" class="clear">
    <div id="headerContent">
        <?php include ("bannerIcons.php"); ?>
        <div id="logo">
            <a href="index.php"><img src="images/logo.png" title="home" alt=""/></a>
        </div> <!--end logo-->      
        <?php include('mainMenu.php');?>
    </div>
</div> <!--end header-->
<div id="container">    
    <div id="content" class="shadow"><div class="content">
    <div id="colLt"><div class="content">
        <?php
        connect();
        $sql = mysql_query("SELECT services FROM contentAreas") or die("nothing found");
        $row = mysql_fetch_assoc($sql);
        if ($_SESSION['username']=='admin'){
            echo "<div id='services' contenteditable='true' onblur='saveServices()'>";
        } else {
            echo "<div id='services'>";         
        }       
        echo $row['services'];
        echo "</div>";?>
        <script type="text/javascript">
            function saveServices() {
                var data = CKEDITOR.instances.services.getData();
                $.post('saveServices.php', {services:data})     
            }
        </script>
    </div></div>
    <?php include('saveServices.php');?>
    <div id="colRt"><div class="content">
        <div id="serviceBox" class="shadow"><div class="content">
            <p class="big italTxt">one or more testimonials could go here. Lorem ipsum dolor sit amet, mel cu atqui perfecto, nec te vero fugit denique, an vel mundi tritani concludaturque.<br><br>Laoreet erroribus eos no. Eu nec maluisset repudiandae. Possit lucilius constituam his cu, quas liber sea an, eum purto errem audire eu. In viris assentior vis, pri iudico dolorem electram ne, ea ius scripta virtute.</p>
        </div></div>
    </div></div><!--end colRt-->
    </div></div><!--end content-->  
<div id="footer">
    <?php include("footer.htm") ?>
</div><!--end footer-->
<div class="clear"></div>
</div><!--end container-->
<div class="clear"></div>
</body> 
</html> 

我的文件saveServices.php如下:

<?php
$services=$_POST['services'];
echo "hello<br>";
echo "services: ".$services;
include('functions.php');
connect();
$sql1 = mysql_query("UPDATE contentAreas SET services = '$services'") or die ("Your information has not been posted");
?>

再次感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

我无法相信这一点,也不理解,但当我将我的div名称从“服务”改为“提供”时,它就有效了。服务是保留字吗?我的函数名称saveServices()可能太长了吗?我很想听到有关为什么会发生这种情况的具体解释。

答案 1 :(得分:0)

另外,我从4.0.2标准升级到4.2.2标准。