У меня проблема:
У меня есть текстовая область на моей странице, которая выглядит так:
<textarea id='redactor_content' name='redactor_content' style='width: 720px; height: 320px;'>$news[3]</textarea>
Где $news[3]
– это переменная php, которую я получаю от MySQL. redactor_content
– redactor_content
WYSIWYG, где я редактирую содержимое $news[3]
. После редактирования содержимого я хочу передать его в mysql, чтобы обновить таблицу со следующим JavaScript:
function update_news(n_id) { var title = $('#title').val(); var news_body = $('#redactor_content').val(); alert(news_body); $.post( "update.php", {n_id: n_id, title: title, body: news_body}, "html" )};
В JS есть еще n_id
переменные, которые являются n_id
и title
. Оба работают нормально. Но когда появляется предупреждение с переменной news_body, я вижу старую версию textarea (которая первоначально была в переменной $ news [3]), а не новая, обновленная.
Я застрял, ребята. Любая помощь приветствуется!
большинство редакторов wysiwyg создают новый отдельный раздел на странице (обычно iframe), который накладывает текстовую область, которую они заменяют. Вам нужно будет сообщить редактору скопировать данные в «причудливую» графическую версию обратно в исходные поля формы, чтобы ваш JS мог получить обновленную версию. или выяснить, как / где редактор хранит наложенную версию, чтобы вы могли ее захватить оттуда.
Вероятно, есть некоторые функции клиентской стороны, которые предоставляет redactor_content
чтобы вы могли правильно получить значение. Что-то вроде $('#redactor_content')[0].getTextValue()
или что-то в этом роде.
Это не тот факт, что вам действительно нужен код, просто пример того, как это возможно.
Спасибо за помощь, ответ на мой вопрос:
необходимо заменить эту строку:
var news_body = $('#redactor_content').val();
с этой строкой:
var news_body = $('#redactor_content').elrte('val');