[AJAX] Retour à la ligne dans un textarea
Bonjour à toutes et à tous ! :D
Voilà, j'ai un petit problème avec un textarea pour afficher des retours à la ligne.
Je m'explique :
- J'enregistre des données dans une base Access depuis un textarea (je sais, mais pas le choix pour la mise en application de mon projet) via un script PHP donc voici un extrait du code :
Code:
1 2 3
|
$content=rawurlencode(nl2br(stripslashes($_POST['content'])));
//et je fais mon INSERT dans ma base qui se déroule très bien |
Ensuite, je récupère mes données avec un SELECT normal en Ajax dans un <div> avec un innerHTML (document.getElementById('temp').innerHTML). Les <BR> s'affichent alors dedans.
C'est ma fonction "afficher" qui en passant l'URL de mon script, affiche le résultat de la requête.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
function afficher (url)
{
if(window.XMLHttpRequest)
objet0= new XMLHttpRequest();
else if(window.ActiveXObject)
objet0 = new ActiveXObject("Microsoft.XMLHTTP" );
else return(false);
objet0.open ('GET', url, true);
objet0.onreadystatechange = function()
{
if (objet0.readyState==1)
{
document.getElementById('temp').innerHTML="";
}
else if (objet0.readyState==4)
{
if(objet0.status==200)
{
document.getElementById('temp').innerHTML=objet0.responseText;
display_template();
}
else if(objet0.status==404)
{
document.getElementById('temp').innerHTML = "URL error";
}
else
{
document.getElementById('temp').innerHTML = "Error : ".objet0.status;
}
}
}
objet0.send(null);
return;
}
//Je supprime les <BR> qui apparaissent
var content=document.getElementById('temp').innerHTML;
while(content.indexOf("<BR>")!=-1)
{
content=content.replace("<BR>","\n");
}
content = content.split("<BR>").join("\n");
// J'affiche le contenu
document.getElementById('textarea').innerHTML+=content; |
Le problème qui se pose est le suivant :
- tout mon texte s'affiche en ligne sans les <BR> mais avec des espaces à la place si j'utilise
Code:
1 2
|
document.getElementById('textarea').innerHTML+=content; |
Sinon, les <BR> sont bien retranscrits de cette manière mais j'obtiens des caractères HTML à la place des caractères spéciaux :
Code:
1 2
|
document.getElementById('textarea').value+=content; |
Auriez-vous une idée ?
J'ai déjà essayé plusieurs méthodes en PHP mais je me rends compte que c'est plus au niveau Javascript que le formatage du texte doit se faire.
Merci d'avance ! ;)
Fred