使用AJAX和PHP重新加载TINYMCE 3.5

时间:2015-06-15 11:28:20

标签: javascript php html ajax tinymce

我在使用PHP和AJAX在HTML网页上更新WYSIWYG编辑器(TinyMCE 3.5)的内容时遇到问题。

" news.php"的初始代码:

<script type="text/javascript">

tinyMCE.init({
    // General options
    mode : "textareas",
    theme : "advanced",
...
  });
</script>



...
      <select id="id_languages" name="id_languages" onchange="recibeid('loading_news_language.php', 'id_news=<?php echo $id_news;?>&id_languages='+document.getElementById('id_laguanges').value+'', '', 'load_news_language');">
        <?php

          $row_idiomas = get_languages();
          for($i = 0; $i<count($row_languages); $i++){
        ?>
        <option value="<?php echo $row_languages[$i]["id_languages"];?>"><?php echo $row_languages[$i]["name"];?>
        </option>
        <?php
          } //close bucle for
        ?>

    </select>
  </div>
 </div>

<div class="rowform"></div><!-- rowform -->
<div id="load_news_language">
      <?php include("loading_news_language.php");?>
</div>
...

首次加载&#34; loading_news_language.php&#34; Tiny编辑器工作正常,但如果使用标签&#34;选择器&#34;当点击不同的语言时,不要再次加载编辑器,只有de content。我需要重新加载编辑器。

loading_new_language.php的代码:

...

<textarea name="text" id ="text" rows="1" style="height: 300px;">
        <?php 
        if(isset($_POST["text"]))
        {echo $_POST["text"];}
        elseif (isset($_GET["id_news"])) 
        {echo $row_news_languages["text"]; }
        ?>
</textarea>
...

提前感谢所有试图提供帮助的人。

1 个答案:

答案 0 :(得分:0)

当您动态尝试更改WYSIWYG编辑器时会发生这种情况,它会中断。您需要做的是,每次更改内容时重新启动编辑器。

您需要删除TinyMCE编辑器,然后使用以下函数再次使用新内容“重新添加”它,其中IDofYourEditor必须替换为您的tinyMCE编辑器的ID。

tinyMCE.execCommand('mceRemoveControl',true,'IDofYourEditor');

将新内容加载到编辑器后,您必须再次重新启动编辑器,就像您在示例中所做的那样:

tinyMCE.init({
  // General options
  mode : "textareas",
  theme : "advanced",
  ...
});

这样你的编辑器就可以正常工作了。