Comment résoudre les problèmes de saut de ligne avec AJAX PHP et MySQL ?
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.
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.
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));
?>