WordPress TinyMCE не отправляет контент - PullRequest
1 голос
/ 14 апреля 2011

Я написал плагин для админки для WordPress 3.1. Плагин имеет текстовую область TinyMCE. Я использую форму jQuery для отправки данных формы на страницу обработки. Текстовая область TinyMCE отображается правильно, и я могу вводить в нее содержимое. Однако когда я отправляю данные на страницу обработки, все данные, кроме содержимого текстовой области TinyMCE, отправляются, и страница обработки возвращает ожидаемый результат. Если я нажму кнопку отправить второй раз, дата TinyMCE будет отправлена. Как это можно исправить?

Вот код JavaScript:

    <script type="text/javascript">    
jQuery(document).ready(function() { 
        var options = { 
            target: '#output',
            url: '../wp-content/plugins/kac/ajax/send_email_to_list.php'
        }; 

    jQuery('#form1').ajaxForm(options);
}); 

function showResponse(responseText, statusText, xhr, $form)  { 

    alert('status: ' + statusText + '\n\nresponseText: \n' + responseText + 
        '\n\nThe output div should have already been updated with the responseText.'); 
} 
</script>

Вот HTML:

<form method="post" id="form1" name="form1">
<label for="subject">
Subject:
</label><br />
<input name="subject" id="subject" type="text" size="40" maxlength="100" /><br /><br />
<?php
wp_tiny_mce( false , // true makes the editor "teeny"
    array(
        "editor_selector" => "myeditor"
    )
);

?>
<label for="message">

Message: 
</label>
<textarea class="myeditor" id="message" name="message"></textarea><br /><br />
<input name="send" id="send" type="submit" value="Send" />
</form>    

1 Ответ

12 голосов
/ 14 апреля 2011

Вы должны знать, что tinymce не равно текстовой области! Tinymce будет скрывать текстовую область при инициализации и создавать iframe, в котором пользователь может редактировать контент. Таким образом, необходимо вызвать метод сохранения tinymce, чтобы записать содержимое iframes обратно в текстовую область.

Итак, вам нужен следующий код

var editor = tinymce.get( editor_id);
editor.save();  // writes content back to the textarea
// you may now use jQuery or editor.getContent(); to acces the content
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...