2012-06-03 2 views
-1

я использую CKEditor в текстовое поле: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 :)) Есть некоторое эхо для отладки моего кода.

Вот код, чтобы изменить текстовое поле в CKEditor:

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

Новый мой вопрос конечно. Если я разместил контент в текстовом поле, он будет вставляться в базу данных. И вставленный контент будет отображаться в текстовом поле.

У меня есть функция автосохранения, код из stackoverflow. И он отлично работает. Но если я изменяю значение textarea, он будет только вставлять код между тегами textarea.

Итак, моя проблема: мой код будет только вставлять содержимое из текстового поля между тегами textarea.

Надеюсь, мой вопрос ясен. Я могу опубликовать код автосохранения, но он отлично подходит для других полей ввода в форме. И это тот же код для вставки, что и выше.

Извините за мой плохой английский, надеюсь, вы меня понимаете.

Спасибо!

+0

Вы имеете в виду, что это сохраняет только исходное текстовое поле вместо автосохраненного контента? –

+0

Да, действительно, только код между тегами textarea. – LEDfan

+0

Возможно, вы сможете отправить ссылку, откуда вы взяли функцию автосохранения? –

ответ

4

Перед тем, как отправить форму, Вы должны сказать CKEditor, чтобы сохранить его содержимое обратно в текстовую область:

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

Затем запустите CKupdate(), прежде чем сохранить форму. См. Также: https://stackoverflow.com/a/3256553/1338292

+0

Thaks! Я попробую это позже в этот день. Ну, мне нужно заполнить название текстового поля? – LEDfan

+2

Каждый экземпляр 'CKEDITOR' знает, к какому текстовому полю он прикреплен. –

+0

Ты и так поразительный! Он отлично работает! Я просто реализую код! Спасибо! – LEDfan

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(); 

Он отлично работает, и он сбежал из базы данных! Но действительно ли этот код спас и хорошо?

Спасибо!

Смежные вопросы