2

テキストエリアに配置されたコンテンツをインラインで編集するためにJeditableを使用しようとしています。だから、私はスクリプトファイルを呼び出します:

<script src="js/jquery.jeditable.js"></script>
<script src="js/jquery.jeditable.autogrow.js"></script>
<script src="js/jquery.autogrow.js"></script>

次に、サーバーにデータを送信する関数があります(サンプルURLを保持しました)。この関数はテキストエリアを作成し、エディションを許可します。

$(".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をインラインで編集する場合、テキストエリアが作成され、そのテキストエリアに次のデータが表示されます。

&lt;div style="color:red"&gt;Foo Bar&lt;div&gt;

それ以外の:

<div style="color:red">Foo Bar</div>

適切な文字を表示するにはどうすればよいですか?

4

2 に答える 2

0

編集:私はこの質問が2ヶ月以上前に尋ねられたことに気づいていませんでした-ごめんなさい

html_entity_decode()テキストをテキスト領域に配置するときにこの機能を使用してみましたか?

htmlentities()関数はのようなもの<をに変更しますが&lt;、に変更するhtml_entity_decode()必要があります&lt;<

基本的に、textareaはHTMLタグをフォーマットしないため、自分で変換する必要があります。

ただ、PHPを使って久しぶりなのでよく覚えていません。

于 2010-10-07T14:46:38.963 に答える
-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);
                },

ありがとう

于 2015-03-10T09:43:29.543 に答える