Публикация PHP CKeditor через Ajax о полосах размытия html-тегов

Я использую следующий php с ajax для отправки данных о размытии в SQL. Он отлично работает, передавая основной текст в базу данных, но я добавил CKeditor в несколько полей, чтобы разрешить редактирование WYSIWYG, и я не могу понять, что происходит, когда удаляются HTML-теги и запрещается их прохождение.

Вот php

<?php
if(!empty($_POST))
{
//database settings
include "config.php";
foreach($_POST as $field_name => $val)
{
    //clean post values
    $field_userid = trim($field_name);
    $val = trim(mysql_real_escape_string($val));

    //from the fieldname:user_id we need to get user_id
    $split_data = explode(':', $field_userid);
    $user_id = $split_data[1];
    $field_name = $split_data[0];
    if(!empty($user_id) && !empty($field_name) && !empty($val))
    {
        //update the values
        mysql_query("UPDATE user_details SET $field_name = '$val' WHERE user_id = $user_id") or mysql_error();
        echo "Field updated to server";
    } else {
        echo "Invalid Requests";
    }
}
} else {
echo "Invalid Requests";
}
?>

js

$(function(){
    //acknowledgement message
    var message_status = $("#status");
    $("[contenteditable=true]").blur(function(){
        var field_userid = $(this).attr("id") ;
        var value = $(this).text() ;
        $.post('ajax.php' , field_userid + "=" + value, function(data){
            if(data != '')
            {
                message_status.fadeIn("slow");
                message_status.text(data);
                //hide the message
                setTimeout(function(){message_status.fadeOut("slow", "swing")},500);
            }
        });
    });
});

Вот пример поля HTML:

<p id="story1:<?php echo $row_rsTest['user_id']; ?>" contenteditable="true"><?php echo $row_rsTest['story1']; ?></p>

Я чувствую, что упускаю что-то очевидное. Я использую тот же редактор CK в другом экземпляре с формой, которая публикуется в Submit, может ли это быть проблемой размытия?


person Andrew J O'Melia    schedule 02.07.2014    source источник
comment
я смущен тем, почему вы используете CKeditor, который создает html, а затем strip_tags   -  person    schedule 03.07.2014
comment
Я скажу вам, что это первое место, где я начал. Я полностью удалил strip_tags, но по какой-то причине теги HTML извлекаются до того, как они попадут в базу данных. Я обновлю свой PHP, чтобы отразить удаленные strip_tags.   -  person Andrew J O'Melia    schedule 04.07.2014


Ответы (1)


Я также ответил на форумах CKEditor: вместо использования jQuery и, в частности, getText (сюрприз, это даст вам только текст), используйте API CKEditor и вызовите .getData() в экземпляре редактора.

person AlfonsoML    schedule 04.07.2014
comment
HTF, да, это было виновником. Просто для проверки я изменил 'var value = $(this).text();' на 'значение переменной = $(this).html() ;' в JS, и он сразу начал работать. Теперь мне нужно изменить разрешенные теги в конфигурации CKE, чтобы разрешить классы атрибутов стиля и т. д. Я бы хотел переключиться и просто использовать CKE Api для создания экземпляра и использования getData, а не добавлять редактор во все редактируемые элементы div. Глядя на приведенный выше код, как бы вы преобразовали jquery? - person Andrew J O'Melia; 08.07.2014
comment
Привет, Эндрю, это другой вопрос, и вы должны создать для него новый пост, содержащий только HTML и код JS, объясняющий, в чем именно заключается ваша новая проблема (конечно, проверьте документацию и существующие вопросы, потому что это наверняка освещено) - person AlfonsoML; 08.07.2014
comment
Спасибо, AlfonsoML, проверим доски на предмет ответа и опубликуем новый вопрос (только при необходимости :-) - person Andrew J O'Melia; 08.07.2014