我正在尝试使用Jeditable来编辑内嵌在textareas中的一些内容。 所以,我调用脚本文件:
<script src="js/jquery.jeditable.js"></script>
<script src="js/jquery.jeditable.autogrow.js"></script>
<script src="js/jquery.autogrow.js"></script>
然后我有一个应该将数据发送到服务器的函数(我保留了示例URL)。 这个功能创建了一个textarea并允许版本:
$(".autogrow").editable("http://www.appelsiini.net/projects/jeditable/php/save.php", {
indicator : "<img src='img/indicator.gif'>",
type : "autogrow",
submit : 'OK',
cancel : 'cancel',
tooltip : "Click to edit...",
onblur : "ignore",
event : "dblclick",
autogrow : {
lineHeight : 16,
minHeight : 32
}
});
然后,我有要编辑的数据包含HTML标签,因为我必须存储它们:
$data = '<div style="color:red">Foo Bar</div>';
echo '<div class="autogrow">'.htmlentities($data).'</div>';
“echo”与标签完美地显示“$ data”内容,但是当我想编辑内联DIV时,会创建一个textarea并在该textarea中显示以下数据:
<div style="color:red">Foo Bar<div>
而不是:
<div style="color:red">Foo Bar</div>
如何显示正确的字符?
答案 0 :(得分:0)
编辑:我没有意识到这个问题是在2个月前被问到的 - 抱歉
将文本放入文本区域时,是否尝试使用html_entity_decode()
函数?
htmlentities()
函数会将<
之类的内容更改为<
,而html_entity_decode()
应将<
更改为<
基本上textarea不会格式化HTML标记,因此您需要自己转换它们。
然而,自从我使用PHP以来已经有一段时间了,所以我记不起来了。
答案 1 :(得分:-1)
只需编辑此文件js / jquery.jeditable.js
转到第#:398 $ .editable {}函数行,并按以下代码添加该行
$.editable = {
types: {
defaults: {
element : function(settings, original) {
var input = $('<input type="hidden"></input>');
$(this).append(input);
return(input);
},
content : function(string, settings, original) {
string = $('<div/>').html(string).text(); // <--- Add this line
$(':input:first', this).val(string);
},
由于