Php ckeditor能否更新数据库内容?

Php ckeditor能否更新数据库内容?,php,javascript,mysql,ckeditor,Php,Javascript,Mysql,Ckeditor,你能给我一个方法把ckeditor的内容保存到数据库吗 我有0%的想法如何使事情的工作,这将是第一次使用一个。我在谷歌上搜索过,但它总是显示fckeditor(它们是一样的吗?)。另外,我也尝试了一些使用AJAX的代码,但仍然无法使其工作,因为它需要一些插件,而我并不真正理解它 无论如何,我使用的是4.0版本的ckeditor,我更喜欢php或javascript代码,因为我不太懂AJAX。这是我的试用码: <!DOCTYPE html> <!-- Copyright (c)

你能给我一个方法把ckeditor的内容保存到数据库吗

我有0%的想法如何使事情的工作,这将是第一次使用一个。我在谷歌上搜索过,但它总是显示fckeditor(它们是一样的吗?)。另外,我也尝试了一些使用AJAX的代码,但仍然无法使其工作,因为它需要一些插件,而我并不真正理解它

无论如何,我使用的是4.0版本的ckeditor,我更喜欢php或javascript代码,因为我不太懂AJAX。这是我的试用码:

<!DOCTYPE html>
<!--
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
-->

<?php
include('global.php');
?>

<html>
<head>

    <script>
        var type = 'Admin';

        <!-- editableContent -->
        window.onload = function (){
            if(type=='Admin'){
            document.getElementById('opener').contentEditable= true;
            document.getElementById('main').contentEditable= true;
            // We need to turn off the automatic editor creation first.
            CKEDITOR.disableAutoInline = true;
            var editor = CKEDITOR.inline( 'opener' );
            var editor = CKEDITOR.inline( 'main' );
            }
            else{
            document.getElementById('opener').contentEditable= false;
            document.getElementById('main').contentEditable= false;
            }
        }

        function showHTML () {
        document.getElementById('textpad').textContent = textEditor.document.body.innerHTML;
        return;
        }

    </script>


    <title>Inline Editing by Code &mdash; CKEditor Sample</title>
    <meta charset="utf-8">
    <script src="ckeditor/ckeditor.js"></script>
    <link href="ckeditor/samples/sample.css" rel="stylesheet">
    <style>

        #editable
        {
            padding: 10px;
            float: left;
        }

    </style>
</head>
<body>
    <div id="opener">
    <?
    $result= mysql_query ("SELECT * from text_tb WHERE categoryName='index'");
        while($row = mysql_fetch_array($result)){
        echo $row[1];
        }
    ?>
    </div>

    <div id="main">
    <?
    $result= mysql_query ("SELECT * from text_tb WHERE categoryName='about'");
        while($row = mysql_fetch_array($result)){
        echo $row[1];
        }
    ?>
    </div>
</body>
</html>

变量类型='Admin';
window.onload=函数(){
如果(类型=='Admin'){
document.getElementById('opener')。contentEditable=true;
document.getElementById('main')。contentEditable=true;
//我们需要先关闭自动编辑器创建。
CKEDITOR.disableAutoInline=true;
var editor=CKEDITOR.inline('opener');
var editor=CKEDITOR.inline('main');
}
否则{
document.getElementById('opener')。contentEditable=false;
document.getElementById('main')。contentEditable=false;
}
}
函数showHTML(){
document.getElementById('textpad')。textContent=textEditor.document.body.innerHTML;
返回;
}
按代码内联编辑&mdash;编辑样本
#可编辑
{
填充:10px;
浮动:左;
}

这可能不是100%的目标,但这是我所用的,它工作得很好。TinyMCE使用HTMLtextarea标记和一些JavaScript来允许客户端格式化信息。然后,一个普通的“提交”将textarea的内容发送到服务器,在那里您可以通过POST方法请求接收它,并将其存储在数据库中

TinyMCE的示例JS:

<script language="javascript" type="text/javascript" src="scripts/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">

tinyMCE.init({
    mode : "textareas",
    theme : "advanced",
    plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",

    theme_advanced_buttons1 : "bold,italic,underline,|,justifyleft,justifycenter,justifyright,|,bullist,numlist,|,copy,paste,pastetext,pasteword,|,undo,redo,|,link,unlink,anchor,image,cleanup,|,removeformat,|,forecolor,backcolor,|,formatselect,charmap,emotions,iespell,",
    theme_advanced_buttons2 : "",
    theme_advanced_buttons3 : "",
    theme_advanced_toolbar_location : "top",
    theme_advanced_toolbar_align : "left",
    theme_advanced_statusbar_location : "bottom",
    theme_advanced_resizing : true
});

</script>

tinyMCE.init({
模式:“文本区域”,
主题:“高级”,
插件:“safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,NoEdit,visualchars,NoBreaking,XHTML,template”,
主题高级按钮1:“粗体、斜体、下划线、|、左对齐、居中对齐、右对齐、|、粗体、数字列表、|、复制、粘贴、粘贴文本、粘贴文字、|、撤消、重做、|、链接、取消链接、锚定、图像、清理、|、移除格式、|、前景色、背景色、|、格式选择、字符映射、情感、易趣、”,
主题\高级\按钮2:“”,
主题\高级\按钮3:“”,
主题\高级\工具栏\位置:“顶部”,
主题\高级\工具栏\对齐:“左”,
主题\高级\状态栏\位置:“底部”,
主题\u高级\u大小调整:正确
});

链接此处:

ckeditor文档提供了一种非常简单的方法:

<form method="post">
    <p>
        My Editor:<br>
        <textarea name="editor1">&lt;p&gt;Initial value.&lt;/p&gt;</textarea>
        <script>
            CKEDITOR.replace( 'editor1' );
        </script>
    </p>
    <p>
        <input type="submit">
    </p>
尽管我强烈建议您使用PHP PDO扩展提供的准备好的语句。事先准备好的声明要安全得多

[…]更喜欢php或javascript代码,因为我不太懂AJAX

事实上,AJAX是PHP和JavaScript的混合体:没有服务器端语言(PHP),您无法更新数据库内容,但使用客户端语言(JavaScript),您可以与服务器端脚本“对话”,这就是我们所说的AJAX

不管怎么说,正如Ray Paseur所说,通常您发布一个包含textarea的表单,该表单的值为已编辑内容,但在您的情况下,您似乎正在使用4.0版本的新内联编辑功能

因此,在本例中,要访问已编辑内容的值,必须获取已编辑div的内容,如下所示:

var opener_content=document.getElementById("opener").innerHTML;
var main_content=document.getElementById("main").innerHTML;
这将为您提供由编辑器生成的HTML代码。只需在一个函数中执行此操作,您可以通过页面中的“保存更改”按钮调用该函数,然后使用AJAX将这些变量发送到服务器。。。(我真的建议您更多地了解AJAX,它比它简单。)


但是,如果您现在不想学习AJAX,您可以在页面上添加一个带有空文本区域的隐藏表单,当单击save按钮时,您用上面的2个变量填充这些文本区域,然后通过JavaScript发布此表单,并使用
$\u post
变量将数据保存在PHP中!即使这是一个丑陋而懒惰的解决方案,它也会起作用:)

我尝试了你的代码,但它没有将编辑器内容保存到数据库中。当它在点击按钮时刷新时,仍然显示相同的查询结果。我关于此注释的错误^,为此,我放置了div id
opener
,然后出现了bug。我希望你能给我其他的选择。谢谢!如果我愿意尝试你的答案,我会选择第二个选项。(笑)但是,我会选择最后一个,我仍然会尝试寻找更好的解决方案。谢谢!我还没有试过你的密码,但我认为它不会起作用。不是因为悲观,而是我们使用了两种不同的编辑器,它们很可能使用不同的属性或其他东西。另外,我并没有那个些我认为和保存有关的.js东西,最后,那个些看起来更像是一个属性部分。不过,非常感谢您将此分享给我。竖起大拇指!你好。由于我对ckeditor失去了所有希望,我尝试了tinymce,一次就完成了。谢谢!竖起大拇指!伟大的很高兴这对你有帮助,雷
var opener_content=document.getElementById("opener").innerHTML;
var main_content=document.getElementById("main").innerHTML;