-
nl2br et javascript
Bonjour! voila mon probleme: Je souhaite afficher un texte contenu dans une base de donnée avec une fonction javascript (un genre de mouseover, le texte correspondant s'affiche lorsque l'on passe la souris sur un bouton). j'ai donc mis un nl2br pour garder les retours a la ligne par contre cela ne fonctionne pas avec ma fonction javascript. si je fais un echo de la variable qui contient le texte a afficher, le texte s'affiche correctement et tient compte des espaces, par contre au moment d'executer le javascript si j'ai des retour a la ligne dans mon texte il n'affiche rien. par contre la fonction stripslashes et addslashes marche tres bien.. Coment faire?
-
personne n'a d'idées?
voila ma fonction javascript:
<script language="javascript">
function hexa(texte)
{
document.getElementById('p').value = texte;
}
</script>
'p' est un textarea. j'ai testé avec un string replace comme cela
<script language="javascript">
function hexa(texte)
{
texte = string.replace(/\n/g,'<br />');
document.getElementById('p').value = texte;
}
</script>
mais ça n'a pas l'air de marcher..
-
Merci de penser aux balises code ...
il manque des caractères d'echappement ...
Code:
texte = string.replace(/\\n/g,'<br \/>');
-
c'est une ligne que j'ai copié collé d'un site, j'ai pas verifié. Mais ça ne change rien :( maintenant la console javascript de firefox me met des "string is not defined"
-
ton objet à un id 'p'
tu ne confonds pas avec la balise p ? tagName ...
quel est le type de l'objet ? un input text ou un paragraphe ?
-
je vais essayer d'expliquer le fonctionnement mais ça va pas etre facile.
En fait j'ai un menu vertical composés de bouttons dynamiques. Ceux ci represente des projets. Ils sont créés par le code, qui verifie la présence de dossier dans mon dossier "projet". Donc des qu'il trouve un dossier, il crée un boutton avec comme nom le nom du dossier (qui est rangé dans la variable $dossier) en meme temps, le code verifie si, dans la base de données il existe un commentaire pour ce projet. Le code regarde donc si dans la base de donnée il existe une entrée pour $dossier, et si c'est le cas, il affecte à ${$dossier} le contenu de ce commentaire. Au final, j'obtiens une page avec tout les boutons correspondant à mes projets, et quand je passe ma souris sur chaque boutton, le commentaire correspondant s'affiche dans mon textarea (dont l'id est 'p') qui se situe en dessous. Le textarea prends la valeur de ${$dossier}, et change donc selon l'endroit ou la souris se trouve. Le coup du mouseover est géré par ma fonction
<script language="javascript">
function hexa(texte)
{
document.getElementById('p').value = texte;
}
</script>
Tout marche bien, les strip et addslashes sont bien interpreté mais je n'arrive pas a gerer les <br/>. si je fais un echo${$dossier} il m'affiche pour chaque dossier le commentaire correspondant avec le saut de ligne, mais ma fonction javascript ne marche pas.
Voila j'espere que c'est clair :?
-
-
j'essai par un autre moyen, je veux remplacer les <br /> par un \n mais cela ne marche pas non plus. J'ai fais
$br='a';
$n='\n';
${$dossier} = str_replace($br, $n, ${$dossier});
Dans ce cas là ça fonctionne bien, tout les "a" sont remplacés par des retours a la ligne. Par contre dès que je met "<br /> a la place de "a" la fonction ne remplace plus. J'ai utilisé htmlspecialchars pour echaper les balises <br /> mais aucun resultat... Jcommence a penser que ce n'est pas possible a faire :(