2010-07-22 7 views
2

J'essaie d'utiliser Jeditable pour éditer certains contenus mis en textareas. Donc, j'appelle les fichiers de script:Caractères spéciaux décodés dans ma zone de texte (en utilisant un plugin jQuery d'édition)

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

J'ai une fonction qui doit envoyer des données au serveur (j'ai gardé l'URL par exemple). Cette fonction crée une zone de texte et permet l'édition:

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

Ensuite, je les données à modifier Thant contient des balises HTML parce que je dois les stocker:

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

Le « echo » affiche la « $ data » contenu parfaitement avec les balises, mais quand je veux modifier en ligne la DIV, une zone de texte est créé et les données suivantes sont affichées dans cette zone de texte:

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

au lieu de:

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

Comment puis-je afficher les caractères appropriés?

Répondre

0

Edit: Je ne savais pas cette question a été posée il y a plus de 2 mois - Désolé

Avez-vous essayé d'utiliser la fonction html_entity_decode() lorsque vous mettez le texte dans une zone de texte?

La fonction htmlentities() va changer les choses comme < dans &lt;, alors que html_entity_decode() devrait changer &lt; en <

Fondamentalement, une zone de texte ne sera pas le format de vos balises HTML et vous devez les convertir vous.

Cependant, cela fait un moment que j'ai utilisé PHP, donc je ne me souviens pas trop bien.

-1

modifier simplement ce fichier js/jquery.jeditable.js
aller à la ligne #: 398 $ .editable fonction {}, et ajoutez la ligne comme dans le code ci-dessous

$.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

Questions connexes