脚本不在foreach中工作,如何通过ajax运行它?

时间:2014-04-02 06:06:05

标签: javascript php jquery ajax

我一直在尝试在单击表格后使脚本生效。几乎,当您访问自己喜欢的电子邮件提供商时,您点击一封新电子邮件,它就会打开,这就是我的目标。点击后我无法运行ckeditor。

检索数据并发布到表格

$getInfo = $articleClass->get_all_article_info();

foreach($getInfo as $data)
{
    $article_title = $data['article_title'];
    $article_content = substr(htmlentities($data['article_content']),0,50).'...';
    $article_content_full = $data['article_content'];

    echo '
        <tr id="tr_id">
            <td class="marker">
                <i class="fa fa-align-left"></i>
            </td>

            <td class="title">
                '.$article_title.'
            </td>

            <td class="content">
                '.$article_content.'
            </td>
        </tr>

        <section id="post_info_id" style="display:none;">

            <textarea id="editor1" name="editor1"></textarea>

            <script>
                CKEDITOR.replace( "editor1",
                {
                    toolbar: "Basic",
                });

                CKEDITOR.instances.editor1.setData( "'.$article_content_full.'", function()
                {
                    this.checkDirty();
                });
            </script>

        </section>
    ';
}

点击表格

上的操作
$(document).ready(
function()
{
    $("#tr_id").click(function()
    {
        $("#post_info_id").css("display", "block");
        $("#table_id").hide();
    });
});

问题

当我点击一行时,它只会打开editor1 textarea,但不会打开我想要加载的脚本。如果我删除上面发布的第一个脚本,它位于echo内部,并将其放在.php文件的页脚上,脚本加载就好了,但我需要在foreach内部,否则它将无法正常工作,如何让它运行在ajax?我绝对没有ajax的经验,但愿意学习。

编辑:

我无法弄清楚如何在ajax中创建这段代码。

CKEDITOR.replace( "editor1",
{
    toolbar: "Basic",
});

CKEDITOR.instances.editor1.setData( "'.$article_content_full.'", function()
{
    this.checkDirty();
});

1 个答案:

答案 0 :(得分:0)

试试这段代码。 此代码将创建一个Ck编辑器实例。 您的article_content_full详细信息将添加到隐藏的div中。并在行上单击它将被提取并使用ck-editor显示。

  $getInfo = $articleClass->get_all_article_info();    
  foreach($getInfo as $data) {
    $article_title = $data['article_title'];
    $article_content = substr(htmlentities($data['article_content']),0,50).'...';
    $article_content_full = $data['article_content'];

    echo '<tr id="tr_id">
            <td class="marker">
                <i class="fa fa-align-left"></i>
            </td>

            <td class="title">
                '.$article_title.'
            </td>

            <td class="content">
                '.$article_content.'<div id="article_content_full" style="display:none;">'.$article_content_full.'</div>
            </td>
        </tr>        
    '; }
      echo '<section id="post_info_id" style="display:none;">
            <textarea id="editor1" name="editor1"></textarea>
        </section>';



   $(document).ready(
    $("#tr_id").click(function() {
        $("#post_info_id").css("display", "block");
        $("#table_id").hide();
        var config = {};
        var html = $(this).find('#article_content_full').html()
        editor = CKEDITOR.appendTo( 'editor1', config, html );      
    }); 
  });