2017-02-17 9 views
0

これを達成しようとしています。それは動作しますが、tinyMCEの価値が保存される前にフォームを2回提出しなければなりません。PHPにサブミットする前にtinyMCE値を保存する

$("form#data").on('submit',function(e){ 
     e.preventDefault(); 
     tinymce.init({ 
      selector: "textarea", 
      statusbar: false, 
      setup: function (editor) { 
       editor.on('change', function() { 
        editor.save(); 
       }); 
      } 
      }); 

     var formData = new FormData($(this)[0]); 

     $.ajax({ 
      url: 'includes/new_post.php', 
      type: 'POST', 
      data: formData, 
      async: false, 
      success: function (data) { 
       alert(data) 
      }, 
      cache: false, 
      contentType: false, 
      processData: false 

     }); 

     return false; 
    }); 

コードのAjaxの部分は完璧に動作し、その賢明な他の形態が、TinyMCEをテキストエリアのような形は文句を言わない最初の外出先で提出するだけのこと。私がボタンを2回クリックすると、それは助けてください保存します。

答えて

0

あなたが間違った場所で初期化を行っているように見えます。

最初にフォームを送信すると、タイマーが初期化されます。代わりに、ページの読み込み時にそれを初期化する必要があります。

+0

私はそれが、その運、同じ問題にしようとしました。 – scubby3

0

あなたはこのようにそれを行う必要があります。

tinymce.init({ 
    selector: "textarea", 
    statusbar: false, 
    setup: function (editor) { 
     editor.on('change', function() { 
      editor.save(); 
     }); 
    } 
}); 

$("form#data").on('submit',function(e){ 
    e.preventDefault(); 

    var formData = new FormData($(this)[0]); 

    $.ajax({ 
     url: 'includes/new_post.php', 
     type: 'POST', 
     data: formData, 
     async: false, 
     success: function (data) { 
      alert(data) 
     }, 
     cache: false, 
     contentType: false, 
     processData: false 

    }); 

    return false; 
}); 
関連する問題