Bonjour à toutes et à tous !

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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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