php转JS长文本--ckeditor

php to JS long text -- ckeditor

我得到了一段很长的文本,我设法将其存储在我的数据库中 (mysql)。我可以从数据库中获取数据到 php,这也没有问题。为了把长文本放到ckeditor,

function getDetails(text,did,title){


    // tersine replace işlemleri
    // syntax hatamızı çözdük, şimdi textlerimizde bulunan quot; ları eskisi gibi " lara çevirelim


    console.log(text);

      $("#editor").css("visibility","visible");
      $("#info").css("visibility","visible");

     ineditor = "<textarea class='ckeditor' name='editor1' cols='30' rows='10'></textarea>";
     CKEDITOR.instances.editor1.setData(text);
     $("#info").html(title);
     $("#btnUpdate").attr("onclick","updateNews("+did+")");

}

这是我获取长文本作为文本参数的代码。我像这样从 php 发送它:

$text=json_encode($text);
   $title= json_encode($title);

echo "\n<td id='text$rec[0]' ondblclick='imageClickNews($rec[0]1)' onclick='getDetails($text, $rec[0], $title)'>$rec[1]</td>

通过在 <td>

上使用 onClick

我认为在我的长文本读了一些之后,它没有阅读其余部分。我该怎么办? 谢谢

这个:

onclick='getDetails($text, $rec[0], $title)'

正在将 php 嵌入 javascript。
在 JavaScript 中,您必须将字符串值括在双引号中。
所以假设你的 $text == 'rabbit'$title == 'fairy'.
这是您在 HTML:

中得到的
<td onclick='getDetails( rabbit , 0, fairy )'...

以下是您应该在HTML中拥有的内容以使其正确:

<td onclick='getDetails( "rabbit" , 0, "fairy" )'

所以最终的 PHP 代码将是:

echo "\n<td id='text$rec[0]' ondblclick='imageClickNews($rec[0]1)' onclick='getDetails(\"$text\", $rec[0], \"$title\")'>$rec[1]</td>

而且我不知道 did,如果它也是文本的,也在那里做同样的事情。

我建议您在使用 CKEditor 时更多地考虑正在生成的 HTML 和 JS,而不是 PHP。我建议您将 HTML 输出为 HTML 而不是 JavaScript 变量,concider 可能使用类似 rendered 和未经测试的 HTML 下面 - 一个很大的变化,是的,但我认为值得:

<script>
function setDataTitleAndClickHandler(dataElementID, dataTitleID, thingID) {
    var htmldata = $('#' + dataElementID).html();
    var titledata = $('#' + dataTitleID).html();

    $("#editor").css("visibility","visible");
    $("#info").css("visibility","visible");

    CKEDITOR.instances.editor1.setData(htmldata);
    $("#info").html(titledata);
    $("#btnUpdate").attr("onclick", "updateNews(" + thingID + ")");
}
</script>
<tr>
    <td onclick="getDetails('foo-data', 'foo-title', 12345)">
        <div id="foo-title">"It's a mad world" - Anon</div>
        <div style="display:none;" id="foo-data">
            <p>Content from DB to CKE via PHP.</p>
            <p>"It's a mad world" - Anonymous.</p>
        </div>
        <p>Visible stuff here</p>
    </td>
</tr>
<textarea class="ckeditor" name="editor1" cols="30" rows="10"></textarea>
<button id="btnUpdate">Update :D</button>

这里的好处是你不需要考虑格式化,HTML是独立的,易于调试。此外,这种模式很容易重复,并且应该很容易在 PHP 中命名空间和呈现。这个方法满足你的情况吗?