ckeditor,textarea只在标签之间发送值

时间:2012-06-03 08:03:00

标签: php html textarea ckeditor

我在textarea中使用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 :))有一些echo用于调试我的代码。

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

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

新的问题。如果我在textarea中发布内容,它将被插入到数据库中。插入的内容将显示在textarea中。

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

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

我希望我的问题很明确。我可以发布自动保存代码,但这对于表单上的其他输入字段非常有用。它与上面插入的代码相同。

抱歉我的英语不好,希望你能理解我。

谢谢!

3 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:0)

您可以使用此autosave plugin for CKEditor

答案 2 :(得分: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();

它工作正常,它在数据库中转义!但是这段代码真的很好吗?

谢谢!