2010-09-06 2 views
2

У меня есть форма с Tinymce. Я сохраняю текстовые записи в tinyMce, используя вызов ajax. Когда я нажимаю кнопку сохранения, она не сохраняет последнее значение, которое я ввел в tinymce. т. Е. Когда я загружаю страницу, значение по умолчанию в поле «aaaa». Я обновляю его до «bbb» и нажимаю кнопку «Сохранить». но он сохранил значение «aaaa». Теперь я меняю значение с «bbb» на «ccc» и нажимаю кнопку сохранения, теперь он сохраняет предыдущее значение «bbb», а не «ccc». поэтому он сохраняет одноступенчатое старое значение. Я не знаю почему?zend jquery tinymce ajax сохранить один шаг старое значение

Вот saveAction, который я звоню на кнопке Save Использование Ajax

общественная функция saveAction() {

$this->_helper->layout->disableLayout();   
$this->_helper->viewRenderer->setNoRender(true);  

var_dump ($_REQUEST);  
    if($this->getRequest()->isPost()) 
    { 
     $data=$this->_getParam('content'); 

      var_dump($_REQUEST); // var dump shows the old value each time i press the save button 
    } 

здесь моя форма

здесь Аякса сценарий

$('#frm').submit(function() { 
    var options = { 
     target:  '#response', 
     beforeSubmit: showRequest, 
     success:  showResponse, 
    url: '/admin/index/save' 
     }; 

    $(this).ajaxSubmit(options); 

    return false; 
    }); 

function showRequest(formData, jqForm, options) { 
var queryString = $.param(formData); 
} 

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

ответ

2

Попробуйте сделать the following на кнопку мыши, прежде чем вы что-нибудь еще:

tinymce.activeEditor.save(); 

Это позволит установить реальное содержание редактор для текстового поля в фоновом режиме.

+0

Я попытался это, но tinyMCE.get ('ContentBody') getContent(). все еще извлекал старую устаревшую ценность. Мне пришлось использовать $ ('[name = ContentBody]'). Val(); чтобы получить новое значение из текстового поля. – SomethingOn

+0

проблема заключается в том, что значение в textarea время от времени обновляется из экземпляра редактора (onSave), потому что редактор tinymce находится внутри контентного IFrame и не совпадает с текстовым полем – Thariama

0
tinyMCE.activeEditor.save(); 

(шапки письма для MCE)

1

Привет я искал много об этом, то от крошечного сайта MCE я нашел это OnKeyUp событие, которое может быть добавлено в коде сценария в голове.

// Adds an observer to the onKeyUp event using tinyMCE.init 
tinyMCE.init({ 
    ... 
    setup : function(ed) { 
     ed.onKeyUp.add(function(ed, e) { 
      console.debug('Key up event: ' + e.keyCode); 
     }); 
    } 
}); 

я заменил некоторые детали, как показано ниже

tinyMCE.init({ 
    ... 
    setup : function(ed) { 
     ed.onKeyUp.add(function(ed) { 
      tinymce.activeEditor.save(); 
     }); 
    } 
}); 

так что теперь каждый раз, когда я что-то изменить в любой TinyMCE текстовое поле на моей странице текущий текст будет сохранен и Аякса получить текущее значение.

У меня проблема решена.

Я просто стартер в аяксе и JavaScript, имеющий желание достичь совершенства.

Я надеюсь, что это помогает другим, а :)

Просто помните меня в своих молитвах.

Днем кодирования :)

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