HTML-теги в записи БД не отображаются как HTML - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть форма с разделом заметок, в которой используется ckeditor , поэтому абзацы разделяются при отправке в базу данных MySQL.поэтому два абзаца будут выглядеть следующим образом:

<p>Paragraph 1</p><p>Paragraph 2</p>

Моя проблема в том, что когда эти данные отображаются на веб-странице, теги HTML не читаются как HTML, как я ожидал.Когда я просматриваю страницу в Dev Tools, она показывает кавычки за пределами первого и последнего тега HTML, как показано ниже.это означает, что теги видятся как текст.

“<p>Paragraph 1</p><p>Paragraph 2</p>”

Я делаю то же самое на другом веб-сайте, но на этот раз работает нормально и правильно отображает теги HTML.Когда я рассматриваю это в Dev Tools, он показывает кавычки внутри HTML-тегов каждого абзаца, как показано ниже.Неудивительно, что теги воспринимаются как HTML.

<p>”Paragraph 1”</p><p>”Paragraph 2”</p>

Разница между ними заключается в том, что правильно отображается тип «mediumtext», а другой - «text».Плюс тот, который не отображается должным образом, использует плагин ckeditor.

Я просто использую следующее, чтобы добавить функцию ckeditor:

<textarea rows='4' type="text"  class="notes_c" id="notes_c" 
name="notes_c" value=""></textarea>

<script type="text/javascript" src="../ckeditor/ckeditor.js"></script>
<script>
CKEDITOR.replace('notes_c');
</script>

Любая помощь, чтобы понять, что здесь происходиточень ценится.

Обновление: я пытался использовать html_entity_decode со следующим:

<?php 
$note = $rsCurrentEnquiry->getColumnVal("notes_c"); 
$p = html_entity_decode($note);
?>
<?php echo $p; ?>

, что решает проблему !!

1 Ответ

0 голосов
/ 28 февраля 2019

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

В частности, вы должны получать / устанавливать данные из CKeditor с помощью этих методов (конечно, при динамическом получении / установке данных)):

CKEDITOR.instances.notes_c.getData();
CKEDITOR.instances.notes_c.setData(data_string);

notes_c - это идентификатор / имя / класс div, в котором находится CKeditor.

Если у вас есть другие вопросы, не стесняйтесь их задавать.

РЕДАКТИРОВАТЬ: связь скрипта была разорвана, теперь она исправлена.Также добавлена ​​еще одна кнопка для отображения как getData, так и setData.

JSFiddle

EDIT2: Извините, я действительно неправильно понял ваш вопрос.Итак, используя javascript, я бы использовал AJAX для получения данных из вашей БД (<p>Paragraph 1</p><p>Paragraph 2</p>), а затем сделал бы что-то вроде того, что я делаю в этом JsFiddle

Обратите внимание, что с помощью PHPЕсли HTML-тег неправильно закрыт или неправильно сформирован перед текстом, который вы хотите вставить, тогда PHP добавит плохо сформированный HTML-код и сможет интерпретировать вашу строку как только строку, игнорируя теги HTML внутри.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...