Problème retour à la ligne dans PHP
Ejovad
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je vous écrit mon code:
Dans "comment.php":
J'utilise le script Ajax pour envoyer les données.
Dans "ajax.js":
Dans le coté serveur, je reçois les données:
Dans "add_comment.php":
En testant mon textarea, voici ce que j'obtiens:
Lorsque j'écris dans le champ:
aaa
bbb
ccc
L'insertion dans la base de donnée est comme ceci:
aaabbbccc
J'ai utilisé de différents tests avec <br />, \r\n, \n mais ça marche non plus!
Il est probable que mon code est correct car lorsque j'utilise un "point", au lieu de "\n, <br />, etc..." ----> ça marche. Dans la base de donnée je vois bien l'ajout de <br />. Bien-sûr dans l'affichage j'utilise "nl2br" pour que je vois le résultat.
Voici le code que j'ai utilisé pour tester par un "point":
Je vous écrit mon code:
Dans "comment.php":
<pre> <textarea class="form" id="comment" name="comment" cols="100" rows="10" onFocus="limitChar(this,'500');" onKeyUp="limitChar(this,'500');" onKeyDown="limitChar(this,'500');"></textarea> </pre> <input class="button" name="submitbtn" type="button" value="Commenter" onClick="addComment();"/>
J'utilise le script Ajax pour envoyer les données.
Dans "ajax.js":
function ajax_load(to_url, pos_aff, boolean) { var xhr_object = null; var response = document.getElementById(pos_aff); if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest(); else if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); xhr_object.open("GET", to_url, true); xhr_object.onreadystatechange = function(){ if ( xhr_object.readyState == 4 && xhr_object.status == 200){ if (boolean == true) { response.innerHTML = xhr_object.responseText; } else { response.innerHTML = ""; } } else { response.innerHTML = "<img src='images/loading.gif'/>Patientez..."; } } xhr_object.send(null); } function addComment() { var comment= document.getElementById("comment").value; if (comment == "") { document.getElementById("error").innerHTML = "Erreur: champ vide."; return false; } else { ajax_load('add_comment.php?comment='+comment+'', 'div_show_comment', true); return true; } }
Dans le coté serveur, je reçois les données:
Dans "add_comment.php":
if (isset ($_GET['comment'])){ $mysql = array(); $mysql['comment'] = str_replace ("<br />", PHP_EOL, htmlentities($_GET['comment'], ENT_QUOTES)); function connect_db(){ mysql_connect("localhost", "root", ""); mysql_select_db("mabase_db"); } function sql($query){ connect_db(); return mysql_query($query); mysql_close(); } $addComment = sql(" INSERT INTO comment VALUES (' ', '{$mysql['comment']}') ");
En testant mon textarea, voici ce que j'obtiens:
Lorsque j'écris dans le champ:
aaa
bbb
ccc
L'insertion dans la base de donnée est comme ceci:
aaabbbccc
J'ai utilisé de différents tests avec <br />, \r\n, \n mais ça marche non plus!
Il est probable que mon code est correct car lorsque j'utilise un "point", au lieu de "\n, <br />, etc..." ----> ça marche. Dans la base de donnée je vois bien l'ajout de <br />. Bien-sûr dans l'affichage j'utilise "nl2br" pour que je vois le résultat.
Voici le code que j'ai utilisé pour tester par un "point":
$mysql['comment'] = str_replace (".", PHP_EOL, htmlentities($_GET['comment'], ENT_QUOTES));
A voir également:
- Problème retour à la ligne dans PHP
- Excel retour à la ligne dans une formule - Guide
- Partager photos en ligne - Guide
- Notepad++ retour à la ligne ✓ - Forum Bureautique
- Retour à la ligne google sheet - Forum Google Docs
- Retour à la ligne google sheets android ✓ - Forum Google Docs
3 réponses
bonjour,
je ferais un test comme ceci:
refais un essai pour l'affichage des données
Bonne jounée
je ferais un test comme ceci:
Dans le coté serveur, je reçois les données: Dans "add_comment.php": if (isset ($_GET['comment'])){ $data_mysql = mysql_real_escape_string($_GET['comment']); function connect_db(){ mysql_connect("localhost", "root", ""); mysql_select_db("mabase_db"); } function sql($query){ connect_db(); return mysql_query($query); mysql_close(); } $addComment = sql(" INSERT INTO comment VALUES (' ', '$data_mysql') ");
refais un essai pour l'affichage des données
<?php $texte = htmlentities($ta_variable_avec_le_text, ENT_QUOTES, 'UTF-8') ; echo nl2br($text) ; ?>
Bonne jounée
Ejovad
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
Merci mais ça marche non plus!
Bonjour
Je ne connais pas Ajax, mais ici ( en gras ) :
else {
ajax_load('add_comment.php?comment='+comment+'', 'div_show_comment', true);
return true;
}
cela ressemble bien à une concaténation des valeurs successives de comment ?
Et c'est bien de cela que tu te plains ?
Si ce que je dis est idiot, ne m'en tiens pas rigueur ...
A+
Nyctaclope
EDIT
effectivement, c'était idiot, je viens de voir ton "str_replace"
Et pas moyen de supprimer mon post ...
Le plus joli des poèmes de la mathématique : e^(i.PI)=i^2
trois nombres "sacrés" d'horizons différents qui se donnent la main ...
Je ne connais pas Ajax, mais ici ( en gras ) :
else {
ajax_load('add_comment.php?comment='+comment+'', 'div_show_comment', true);
return true;
}
cela ressemble bien à une concaténation des valeurs successives de comment ?
Et c'est bien de cela que tu te plains ?
Si ce que je dis est idiot, ne m'en tiens pas rigueur ...
A+
Nyctaclope
EDIT
effectivement, c'était idiot, je viens de voir ton "str_replace"
Et pas moyen de supprimer mon post ...
Le plus joli des poèmes de la mathématique : e^(i.PI)=i^2
trois nombres "sacrés" d'horizons différents qui se donnent la main ...