Problème retour à la ligne dans PHP
Ejovad
Messages postés
2
Statut
Membre
-
Alain_42 Messages postés 5413 Statut Membre -
Alain_42 Messages postés 5413 Statut Membre -
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
- Retour à la ligne excel - Guide
- Partager photos en ligne - Guide
- Retour à la ligne google sheet ✓ - Forum Google Docs
- Paramètre de retour à la ligne automatique pour du texte dans une cellule Google - Forum Google Docs
- Notepad++ retour à la ligne ✓ - Forum Bureautique
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
Statut
Membre
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 ...