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 中命名空间和呈现。这个方法满足你的情况吗?
我得到了一段很长的文本,我设法将其存储在我的数据库中 (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='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 中命名空间和呈现。这个方法满足你的情况吗?