par Nox 13-Octobre-2020

Bonjour,

J'ai des sauts de ligne présents dans un <textarea>. Je récupère la valeur du <textarea> avec JavaScript et je la passe en AJAX à mon script PHP pour mise en base de données.

Quand je récupère la valeur depuis la base de données et que je l'affiche dans le <textarea> les sautes de ligne ont disparu.

Merci pour votre aide.

2 Réponses

par Antoine 13-Octobre-2020

Lorsque vous récupérez la valeur du <textarea> en JavaScript vous devez utiliser la fonction encodeURIComponent().

var textarea = encodeURIComponent(document.getElementById("textarea").value);

Ensuite vous passez cette valeur via la méthode AJAX et effectuez votre requête INSERT dans la base de données.

Lorsque vous effectuez la requête SELECT, et qu'à titre d'exemple vous récupérer la variable PHP nommée $textarea, vous devez procédez comme suit pour remplacer les balises <br /> par les sauts de lignes :

<?php
$sauts = array("<br />","<br>","<br/>"); 
$textarea = str_ireplace($sauts , "\r", $textarea);
?>

Utilisez ensuite la fonction PHP htmlspecialchars pour sécuriser l'affichage.

par Loic 16-Juin-2021

Si vous voulez tout simplement afficher la variable PHP qui contient le contenu du textarea, préalablement envoyé via AJAX avec la fonction JavaScript encodeURIComponent(), vous devez utiliser la fonction PHP nl2br() :

<?php
$textarea= nl2br(htmlspecialchars($_GET["textarea"], ENT_QUOTES));
?>

Questions liées

Bienvenue sur 1FORMATIK, où vous pouvez poser des questions en lien avec l'informatique et internet, et recevoir des réponses d'Antoine et d'autres internautes.

2.6k questions

3k réponses

...