3

私のプロジェクトでは、リッチテキスト インターフェイスに CKEditor を使用しています。問題は次のとおりです。- jquery ポップアップ ボックスがあります。このポップアップボックスを表示する前に、レコードを取得した後、レコードを取得するためにサーバーに ajax 呼び出しを行いました。レコードを編集するための編集インターフェイスが表示されます。CKEditor を統合する必要があるテキストエリアがあります。エディターを統合すると、テキスト領域はエディターに正常に変更されますが、テキスト領域内にテキストが表示されません。テキストエリアがfirebugのテキストで満たされているのがわかりますが、エディターは空白で編集できません。

これが私のコードです

これはメインページです

<?php $this->load->view('menu'); ?>
<div id="rightContent">
    <h3>Events&nbsp;&&nbsp;News</h3>
    <div align="right">
    <?php echo anchor('eventsandnews/add','ADD NEW',array('class'=>'button')); ?>
    </div>
        <div class="sukses" style="display:none;">

        </div>
        <table class="data">
            <tr class="data">
                <th class="data" width="30">No</th>
                <th class="data">Text</th>
                <th class="data">Date</th>
                <th class="data" width="75">Actions</th>
            </tr>
            <?php 
            $i=1;
            foreach ($query->result() as $row){ ?>
            <tr class="data" id="an<?php echo $row->id; ?>">
                <td class="data" width="30"><?php echo $i; ?></td>
                <td class="data"><?php echo substr($row->newstxt,0,30); ?></td>
                <td class="data"><?php echo $row->ndate; ?></td>
                <td class="data" width="75">
                <center>
                <a href="<?php echo $row->id; ?>" id="edit" class="edit" name="edit"><img src="<?php echo base_url(); ?>mos-css/img/edit.png"></a>&nbsp;&nbsp;&nbsp;
                <a href="<?php echo $row->id; ?>" id="delete" class="delete" name="delete"><img src="<?php echo base_url(); ?>mos-css/img/delete.png"></a>
                </center>               </td>
            </tr>
            <?php
            $i++;
             } ?>
        </table>
        <div id="paging">
        <?php echo $paging; ?>
        </div>
</div>
<script>
  $(function() {  
  $( "#dialog" ).dialog({
      autoOpen: false,
      height: 350,
      width: 500,
      show: {
        effect: "slide",
        duration: 500
      },
      hide: {
        effect: "slide",
        duration: 500
      }
    });
    $(".edit").click(function(event){
        event.preventDefault();
        var id = $(this).attr("href");      
        $.ajax({
            url: '<?php echo site_url().'eventsandnews/edit/'; ?>'+id,
            success: function(data) {
            $("#dialog").html(data);
            $( "#dialog" ).dialog( "open" );
            debugger;
            CKEDITOR.replace( 'update' );

            }
        });
    });

    $(".delete").click(function(event){
        event.preventDefault();
        var v = confirm('Are you sure to delete?');
        if(v==true){
            var id = $(this).attr("href");      
            $.ajax({
                url: '<?php echo site_url().'eventsandnews/delete/'; ?>'+id,
                success: function(data) {
                    $('.sukses').html('Deleted successfully');
                    $('#an' +id).remove();
                    $('.sukses').show('slow');
                     setTimeout(function() {
                        $('.sukses').hide('slow');
                      }, 2500);
                }
            });
        }

    }); 


  });
  </script>

<div id="dialog" title="Edit">

</div>

これはAjaxのページです

<script>
$(document).ready(function(){
    $( "#eventsandnewsdate" ).datepicker();
    $( "#eventsandnewsdate" ).datepicker( "option", "dateFormat", "dd/mm/yy" );

    $("#sub").click(function(){
     var a =    $("#update").val();
        if($.trim(a)==''){
            $('.gagal').html('Must enter a announcement !');
            $('.gagal').show('slow');           
        }else{
            var hiddenid = $('#id').val();
            var text = $('#update').val();
            $.ajax({
              type: "POST",
              url: "<?php echo site_url().'announcements/update/'; ?>",
              data: { id: hiddenid, announce: text }
            }).done(function( msg ) {
                if(msg==1){
                    $( "#dialog" ).dialog( "close" );
                    setTimeout(function() {
                        document.location.reload();
                     }, 600);

                }
            });

            ;
        }       
    });
});
</script>
<div class="gagal" style="display:none;">

</div>
<table width="95%">         
            <tr>
              <td><strong>Annoucement</strong></td>
              <td><textarea onclick="$('.gagal').hide('slow');" name="update" id="update" ><?php echo $query[0]['atext']; ?>
              </textarea></td>
  </tr>
            <tr>
            <td width="125">Date</td><td>&nbsp;</td></tr>
            <tr><td></td><td><input type="button" class="button" id="sub" name="sub" value="Submit">
            <input type="hidden" name="id" id="id" value="<?php echo $id; ?>">
            </td></tr>
        </table>

誰でも私を助けてもらえますか?

4

1 に答える 1

0

私が正しく理解していれば、CKEditorがロードされた後、textareaフィールドに直接影響を与えようとしています。さらに、間違った方法を使用しているようです。

これを試しましたか: CKEDITOR.editor.html#setData

あなたの場合、それは(彼らのドキュメントから)のようなものになるでしょう

CKEDITOR.instances.editor1.setData( '<p>This is the editor data.</p>' );
于 2013-01-30T21:08:27.920 に答える