【问题标题】:zend jquery tinymce ajax save one step old valuezend jquery tinymce ajax 保存一步旧值
【发布时间】:2010-09-06 16:01:46
【问题描述】:

我和 Tinymce 有关系。我正在使用 ajax 调用保存在 tinyMce 中编写的文本。 当我按下保存按钮时,它不会保存我在 tinymce 中输入的最新值。 即当我加载页面时,字段中的默认值为“aaaa”。我将其更新为“bbb”并按下保存按钮。但它保存了值“aaaa”。现在我将值从“bbb”更改为“ccc”并按下保存按钮现在它保存以前的值“bbb”而不是“ccc”。所以它会继续保存一步旧的值。不知道为什么?

这是我使用 ajax 在 Save 按钮上调用的 saveAction

公共函数 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
     }

这是我的表格

这里是 ajax 脚本

$('#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)  { 
}

【问题讨论】:

    标签: php jquery zend-framework tinymce


    【解决方案1】:

    尝试在单击按钮之前执行the following,然后再执行其他操作:

    tinymce.activeEditor.save();
    

    这会将实际的编辑器内容设置为后台的文本区域。

    【讨论】:

    • 我试过了,但是 tinyMCE.get('ContentBody').getContent();仍在检索旧的陈旧值。我最终不得不使用 $('[name=ContentBody]').val();从 textarea 中获取新值。
    • 这里的问题是 textarea 中的值会不时从编辑器实例中更新(onSave),因为 tinymce 编辑器位于 contenteditable iframe 内,并且与 textarea 不同
    【解决方案2】:

    您好,我对此进行了很多搜索,然后从微型 mce 站点我发现了这个 onkeyup 事件,它可以添加到 head 的脚本代码中。

    // 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 文本区域中更改某些内容时,都会保存当前文本,而 ajax 会获取当前值。

    我的问题解决了。

    我只是 ajax 和 JavaScript 的初学者,渴望达到完美。

    我希望这对其他人也有帮助:)

    请在你的祈祷中记住我。

    编码愉快:)

    【讨论】:

      【解决方案3】:
      tinyMCE.activeEditor.save();
      

      (MCE 大写字母)

      【讨论】:

        猜你喜欢
        • 2012-03-23
        • 2012-04-18
        • 2013-02-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-01
        • 1970-01-01
        • 2016-08-02
        相关资源
        最近更新 更多