2010-09-06 2 views
2

J'ai forme avec Tinymce. Je sauvegarde le texte écrit dans tinyMce en utilisant l'appel ajax. lorsque j'appuie sur le bouton de sauvegarde, il ne sauvegarde pas la dernière valeur entrée dans tinymce. c'est-à-dire lorsque je charge la page, la valeur par défaut dans le champ est "aaaa". Je le mets à jour à "bbb" et j'appuie sur le bouton de sauvegarde. mais il a sauvé la valeur "aaaa". Maintenant, je change la valeur de "bbb" à "ccc" et appuyez sur le bouton Enregistrer maintenant enregistrer la valeur précédente "bbb" pas "ccc". il est donc continuer à enregistrer la valeur ancienne. Je ne sais pas pourquoi?zend jquery tinymce ajax sauvegarder un pas ancienne valeur

Voici le saveAction que je fais appel à bouton Enregistrer en utilisant ajax

fonction publique 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 
    } 

ici est ma forme

est ajax ici script

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

Répondre

2

Essayez de faire the following sur le bouton clic avant toute autre chose:

tinymce.activeEditor.save(); 

Cela définira le contenu de l'éditeur réel à la zone de texte en arrière-plan.

+0

J'ai essayé, mais tinyMCE.get ('ContentBody') getContent(). était toujours en train de récupérer la vieille valeur viciée. J'ai fini par devoir utiliser $ ('[nom = ContentBody]'). Val(); pour obtenir la nouvelle valeur de la zone de texte. – SomethingOn

+0

problème ici est que la valeur dans la zone de texte est mise à jour à partir de l'instance de l'éditeur de temps en temps (onSave) parce que l'éditeur tinymce est à l'intérieur d'un iframe contenteditable et n'est pas le même que le textarea – Thariama

0
tinyMCE.activeEditor.save(); 

(bouchons lettres pour MCE)

1

Salut je cherchais beaucoup sur ce petit puis de site mce j'ai trouvé cet événement onkeyup qui peut être ajouté dans le code de script dans la tête.

// 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); 
     }); 
    } 
}); 

Je remplacé certaines parties comme ci-dessous

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

maintenant à chaque fois que je change quelque chose dans tout tinymce textarea sur ma page le texte actuel est enregistré et ajax la valeur courante.

J'ai résolu mon problème. Je suis juste un démarreur en ajax et JavaScript ayant un désir d'atteindre la perfection.

J'espère que cela aide les autres aussi bien :)

Juste se souvenir de moi dans vos prières.

:) Bonne programmation