我在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中的内容。
我希望我的问题很明确。我可以发布自动保存代码,但这对于表单上的其他输入字段非常有用。它与上面插入的代码相同。
抱歉我的英语不好,希望你能理解我。
谢谢!
答案 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();
它工作正常,它在数据库中转义!但是这段代码真的很好吗?
谢谢!