2 Stimmen

Dekodierung von Sonderzeichen in meinem Textbereich (mit einem jQuery-Plugin für die Bearbeitung an Ort und Stelle)

Ich versuche, Jeditable zu verwenden, um einige Inhalte in Textareas inline zu bearbeiten. Ich rufe also die Skriptdateien auf:

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

Dann habe ich eine Funktion, die Daten an den Server senden soll (ich habe die Beispiel-URL beibehalten). Diese Funktion erstellt eine Textarea und erlaubt die Ausgabe:

$(".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
 }
});

Dann habe ich die Daten zu bearbeiten, die HTML-Tags enthalten, weil ich sie speichern muss:

$data = '<div style="color:red">Foo Bar</div>';
echo '<div class="autogrow">'.htmlentities($data).'</div>';

Das "echo" zeigt den "$data"-Inhalt perfekt mit den Tags an, aber wenn ich das DIV inline bearbeiten möchte, wird ein Textbereich erstellt und die folgenden Daten werden in diesem Textbereich angezeigt:

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

anstelle von:

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

Wie kann ich die richtigen Zeichen anzeigen?

0voto

Lucas Punkte 10186

Editar: Ich habe nicht bemerkt, dass diese Frage schon vor über 2 Monaten gestellt wurde - Sorry

Haben Sie versucht, die html_entity_decode() Funktion, wenn Sie den Text in einen Textbereich einfügen?

Le site htmlentities() Funktion werden Dinge geändert wie < in &lt; , während html_entity_decode() sollte sich ändern &lt; in <

Grundsätzlich formatiert eine Textarea Ihre HTML-Tags nicht, so dass Sie sie selbst umwandeln müssen.

Es ist allerdings schon eine Weile her, dass ich PHP benutzt habe, daher kann ich mich nicht mehr so gut daran erinnern.

-1voto

Talha Malik Punkte 21

Bearbeiten Sie einfach diese Datei js/jquery.jeditable.js
Gehen Sie zu Zeile #:398 der Funktion $.editable{}, und fügen Sie die Zeile wie im folgenden Code ein

$.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);
                },

Merci

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X