Probleme avec innerHTML

Résolu/Fermé
P53ud0 Messages postés 24 Date d'inscription dimanche 30 octobre 2016 Statut Membre Dernière intervention 14 avril 2018 - 14 avril 2018 à 14:02
P53ud0 Messages postés 24 Date d'inscription dimanche 30 octobre 2016 Statut Membre Dernière intervention 14 avril 2018 - 14 avril 2018 à 14:20
Bonjour, pour faire court voici mon problème:

Je veux créer des <article> en fonction des données dans une BDD le soucis que je rencontres actuellement est le suivant:
p.innerHTML = "<?php echo nl2br($paroles[1]);?>";

ne fonctionne pas, je m'explique,
Lorsque j'utilise directement
"<?php echo nl2br($paroles[1]);?>"
dans une balise HTML tout s'affiche correctement, hors quand je passe par le JS cela ne fonctionne plus.
Le soucis est que le
p.innerHTML = "<?php echo nl2br($paroles[1]);?>";
n'arrive pas a gérer la balise <br>
étant donné que dans mon texte il y a des saut de ligne représenter par des <br> ce qui créer un retour a la ligne dans le JS qui est sensible aux saut, et donc ne trouve aucun texte.
Quelques image pour mieux comprendre:



1 réponse

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
14 avril 2018 à 14:15
Bonjour,

En effet, la fonction php nl2br ne remplace pas les retours à la ligne par des
<br />
, mais insère les
<br />
devant les retours à la ligne.
https://www.php.net/manual/fr/function.nl2br.php

Ce qu'il te faut, c'est supprimer les retours à la ligne du texte.

Tu peux le faire en utilisant str_replace :
p.innerHTML = "<?php echo str_replace(array("\r\n", "\r", "\n"), "<br />", $paroles[1]); ?>";

Xavier
0
P53ud0 Messages postés 24 Date d'inscription dimanche 30 octobre 2016 Statut Membre Dernière intervention 14 avril 2018
14 avril 2018 à 14:20
Merci infiniment,

Artur.
0