-1

我在文本区域中使用 ckeditor:

表格的代码:

    <form id="form" name="myform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<textarea  name="content" >
   <?php echo $_POST['content']; ?>
   </textarea>

表单将被发送到当前页面,这里是将代码插入数据库的代码:

  if(isset($_POST['submit']))
{
    if (empty ($_POST['naam']) or empty($_POST['content']) or empty($_POST['omschrijving'])  or empty($_POST['auteur']) or empty($_POST['keywords']))
    {
        echo '<h1>TEST</h1>';
        echo    '<script type="text/javascript">
                    alert("Er zijn velden die niet ingevuld zijn. Deze zijn met rood gemarkeerd");
                </script>';
    }
    else 
    {
        echo 'nog niet verwerkt';
        //alles is ingevuld
        $sql = "INSERT INTO sitecontent (ID, postnaam, post_inhoud, pagina, publiceren)
        VALUES  ( '" . $_POST['id'] .  "',  '" .mysql_real_escape_string($_POST[naam]) ."', '" .mysql_real_escape_string($_POST[content]) . "' , '" .mysql_real_escape_string($_POST[pagina]). "' , '" .  $_POST['publiceren'].  "' )";
        $query = $con->exec($sql);
            echo 'verwerkt';

    }
}

(我正在使用 PDO PHP :) )有一些回声用于调试我的代码。

以下是将 textarea 更改为 ckeditor 的代码:

<script type="text/javascript">
    CKEDITOR.replace('content');
</script>

新我的问题当然。如果我在 textarea 中发布内容,它将被插入到数据库中。并且插入的内容将显示在文本区域中。

我有一个自动保存功能,代码来自stackoverflow。它工作正常。但是如果我更改 textarea 的值,它只会在 textarea 标签之间插入代码。

所以我的问题是:我的代码只会在 textarea 标签之间插入来自 textarea 的内容。

我希望我的问题很清楚。我可以发布自动保存代码,但这非常适合表单上的其他输入字段。它与上面的插入代码相同。

对不起我的英语不好,我希望你能理解我。

谢谢!

4

3 回答 3

4

在提交表单之前,您需要告诉 CKEditor 将其内容保存回文本区域:

function CKupdate(){
    for ( instance in CKEDITOR.instances )
        CKEDITOR.instances[instance].updateElement();
}

然后CKupdate()在保存表单之前运行。另请参阅:https ://stackoverflow.com/a/3256553/1338292

于 2012-06-03T08:16:49.317 回答
0

您可以将此自动保存插件用于 CKEditor

于 2012-06-03T08:23:33.927 回答
0

首先,我希望我能回答这个问题?上面,他们说我需要使用准备好的语句,不要使用 mysql_real_escape_strings。

我编辑了我的代码,这是在我的数据库中插入值的代码。

$query = "INSERT INTO sitecontent (ID, postnaam, post_inhoud, pagina, publiceren)
    VALUES  (:id, :naam, :content, :pagina, :publiceren )";
    $q = $con->prepare($query);

    $q->execute(array(':id'=>$_POST['id'],  ':naam'=>$_POST['naam'] , ':content'=>$_POST['content'] , ':pagina'=>$_POST['pagina'] , ':publiceren'=>$_POST['publiceren'] ));
    $q->errorInfo();

它工作正常,并且在数据库中被转义!但是这段代码真的保存好了吗?

谢谢!

于 2012-06-03T14:49:25.903 回答