php 到 JS 长文本 -- ckeditor.

php to JS long text -- ckeditor

本文关键字:ckeditor 文本 JS php      更新时间:2023-09-26

我有一篇很长的文本,我设法将其存储在我的数据库(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>

通过使用on单击<td>

我想在我的长文本的某个点之后,它不会阅读其余的。我该怎么办?谢谢

我建议你在CKEditor方面更多地考虑正在生成的HTML和JS,而不是PHP。我建议你将 HTML 输出为 HTML 而不是 JavaScript 变量,concider 可能会使用下面渲染和未经测试的 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 中命名空间和渲染。这种方法是否满足您的情况?

这个:

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,如果它也是文本,也在那里做同样的事情。