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 :
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.
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
C'est ma fonction "afficher" qui en passant l'URL de mon script, affiche le résultat de la requête.
Le problème qui se pose est le suivant :
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;
- tout mon texte s'affiche en ligne sans les <BR> mais avec des espaces à la place si j'utilise
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').innerHTML+=content;
Auriez-vous une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 document.getElementById('textarea').value+=content;
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
Partager