0

请帮助我,没有错误,但是当我检查我的数据库时,它什么也没有插入。请帮忙。

这里是faqs.php

 <div class="myeditor">

     <form method="post" action="insert.php">

         FAQs <input type="text" name="ckFAQS">

         <script>
             CKEDITOR.replace( 'ckFAQS' );
         </script>

         <input type="submit">
     </form>

 </div>

这是insert.php

 <?php
     $editor_data = $_POST[ 'ckFAQS' ];
 ?>
 <?php
     $sql="INSERT INTO FAQs (FAQs_Text) VALUES ('$editor_data')";
     if (!mysqli_query($con,$sql))
         die('Error: ' . mysqli_error($con));
     echo "1 record added";
     mysqli_close($con);
 ?>
4

3 回答 3

0

看起来您需要先更新字段的文本内容,然后才能提交。CKEditor 不会直接在输入内部进行编辑,它会创建一个 iframe 并在单独的层上工作。您需要使用 CKEditor 值更新后端 HTML 输入。

首先,我建议您将该输入转换为 a <textarea>,它更自然。然后试试这个:

<input type="submit" onClick="CKupdate();">
<script>
function CKupdate(){
    for ( instance in CKEDITOR.instances )
        CKEDITOR.instances[instance].updateElement();
}
</script>

这是从How to ajax-submit a form textarea input from CKEditor中复制的?- 这个问题/答案很好地解释了这个问题

于 2013-11-14T10:59:07.010 回答
0

您需要给文本区域而不是文本框,只需替换您的代码

<input type="text" name="ckFAQS">

<textarea  name="ckFAQS" cols="40" rows="40"></textarea>

在 faqs.php

谢谢

于 2013-11-15T09:24:35.703 回答
-2

此类问题主要出现在您的字符串中有一些特殊字符时

我想建议使用 mysql_real_escape_string 之类的

$editor_data = mysql_real_escape_string($_POST['ckFAQS']);

谢谢

于 2013-11-14T06:26:38.620 回答