Php saut de ligne dans les textarea
gillosHK -
J'ai crée des formulaire avec des champ textarea dedans mais je voudrais savoir comment le saut de ligne peux se faire.
car lorsque je tape mon texte j'envoie les saut de ligne de se font pas.
Configuration: Windows XP Internet Explorer 7.0
- Saut de ligne php
- Saut de colonne word - Guide
- Partage de photos en ligne - Guide
- Comment supprimer une page sur word avec un saut de page ? - Guide
- Expert php - Télécharger - Langages
- Formulaire en ligne de meta - Guide
25 réponses
- 1
- 2
La discussion porte sur la gestion des sauts de ligne dans les textarea et sur l’usage de nl2br en PHP pour afficher ou enregistrer le texte saisi. Des conseils préconisent de ne pas stocker des balises <br /> en base, mais de conserver les retours chariot sous forme de "\n" et d’appliquer nl2br uniquement à l’affichage. En cas d’affichage, nl2br convertit les retours en balises <br />, ce qui peut être utile pour préserver le formatage dans les pages HTML et éviter d’insérer manuellement des sauts de ligne dans le code. D'autres échanges soulignent aussi que certains environnements affichent différemment les retours chariot et que les traitements peuvent varier selon le mode d'affichage ou le système d'exploitation.
<form action="#" method="POST">
<textarea name="texte" cols"20" rows="20"></textarea>
</form>
<?php
if(isset($_POST['texte'])){
$texte = nl2br($_POST['texte']); // met des <br /> a chaque retour chariot
echo $texte; //affiche le texte
}
else{
}
?>
JuZa.e3b.org || No man's land, People are strange, & Jesus was a punk ## The Blood's Flowers
#Engraved February# Sleepwalking Past Hope
<?php
require_once('connexion.php');
?>
<?php
function dateMySQL($date) {
// On découpe la date selon les "/"
$dates = explode("/", $date);
// On replace les jours, mois et années dans le bon ordre en ajoutant des "-" entre chaque
$dateMySQL = $dates[2] . "-" . $dates[1] . "-" . $dates[0];
return $dateMySQL;
}
?>
<?php
if ( (isset($_POST['DateTicket']) )&&( isset($_POST['HeureTicket']) )&&( isset($_POST['NomClient']) )&&( isset($_POST['RecepteurTicket']) )&&( isset($_POST['InterlocuteurClient']) )&&( isset($_POST['SujetTicket']) )&&( isset($_POST['AffectationTicket']) ) ){
$date = dateMySQL($_POST['DateTicket']);
$heure = $_POST['HeureTicket'];
?>
<?php
$NomClient = $_POST['NomClient'];
$RecepteurTicket = $_POST['RecepteurTicket'];
$InterlocuteurClient = $_POST['InterlocuteurClient'];
$SujetTicket = nl2br($_POST['SujetTicket']); //pour les saut de lignes
$AffectationTicket = $_POST['AffectationTicket'];
$sql = "INSERT INTO `hotlinecc`.`tb_ticket` (`IndexTicket`,`NomClient`, `DateTicket`, `HeureTicket`, `RecepteurTicket`, `InterlocuteurClient`, `SujetTicket`, `AffectationTicket`, `StatutTicket`)
VALUES('A','$NomClient','$date','$heure','$RecepteurTicket','$InterlocuteurClient','$SujetTicket','$AffectationTicket','En cours')";
$res = mysql_query($sql);
print '<script language="javascript">
alert("Votre ticket à bien été pris en compte dans la base de donnée");
location.href = "Principal.php?page=4";
</script>';
} else {
echo "Erreur !!";
}
?>
Ben en fait quand tu enregistres dans ta base de données, il ne faut pas utiliser la fonction nl2br().
Il ne faut utiliser cette fonction que quand tu affiches les informations dans ta page HTML.
Dans ta base de données, il ne te faut aucun <br />, il faut que tu laisses les \n
Quand tu afficheras (par exemple dans les cases de ton tableau ...), là tu utiliseras le nl2br().
Mais pas avant ^^
<?php
$date = dateMySQL($_POST['DateTicket']);
$heure = $_POST['HeureTicket'];
?>
<?php
if(isset($_POST['SujetTicket'])){
$SujetTicketAffich = nl2br($_POST['SujetTicket']);
echo $SujetTicketAffich;
$SujetTicket = $_POST['SujetTicket'];
} else { }
?>
<?php
$NomClient = $_POST['NomClient'];
$RecepteurTicket = $_POST['RecepteurTicket'];
$InterlocuteurClient = $_POST['InterlocuteurClient'];
$AffectationTicket = $_POST['AffectationTicket'];
$sql = "INSERT INTO `hotlinecc`.`tb_ticket` (`IndexTicket`,`NomClient`, `DateTicket`, `HeureTicket`, `RecepteurTicket`, `InterlocuteurClient`, `SujetTicket`, `AffectationTicket`, `ObjetTicket`)
VALUES('A','$NomClient','$date','$heure','$RecepteurTicket','$InterlocuteurClient','$SujetTicket','$AffectationTicket','NA')";
$res = mysql_query($sql);
ET je le met ou alors ? dans mon formulaire ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question<?php $texte = str_ireplace ( "<br />", "", $texte); ?> <textarea name="descript" cols=50 rows=10><?php echo $descript; ?></textarea>
voila comment j'ai interpreté ton code :
<tr>
<?php
$SujetTicket = str_ireplace ( "<br />", "", $SujetTicket);
?>
<td align="right">Sujet du ticket : </td>
<td><textarea id="SujetTicket" name="SujetTicket" cols="30" rows="4"><?php echo $SujetTicket; ?></textarea></td>
</tr>
<tr>
<td align="right">Affecté à :</td>
<td><select type="text" id="AffectationTicket" name="AffectationTicket">
<?php
include ("connexion.php");
$SQL = "SELECT TrigrammeOperateur FROM tb_operateur";
$res = mysql_query($SQL);
while($AffectationTicket=mysql_fetch_array($res)) {
echo "<option>".$AffectationTicket["TrigrammeOperateur"]."</option>\n";}?>
</select>
</td>
</tr>
<td colspan="2" align="center"><input type="submit" value="Créer le ticket"/><br><br><br>
<td align="center"><input name="reset" type=reset value="Effacer le formulaire"/>
</table>
</fieldset>
</form>
</center>
<?php
if(isset($_POST['SujetTicket'])){
$SujetTicket = nl2br($_POST['SujetTicket']); // met des <br /> a chaque retour chariot
echo $SujetTicket; //affiche le texte
}
else{
}
?>
j'ai un if avec si sa a bien envoyé affiché "votre ticket a bien eté pri en compte"
sinon affiché "erreur"
la sa m'affiche erreur mais sa vien de ce que j'ai mis en gras car je l'est testé avant :
:
name="SujetTicket" cols="30" rows="4"><?php echo $SujetTicket; ?>
Sinon ce que tu m'a passé il sont au bon endroit et bien approprier avec la zone de texte de mon forme apellé "sujetticket " ?
<?php
if( isset($_GET['page']) ){
?>
...formulaire
<?php
}
else{
...insert to
}
?>
?
<?php
require_once('connexion.php');
?>
<?php
function dateMySQL($date) {
// On découpe la date selon les "/"
$dates = explode("/", $date);
// On replace les jours, mois et années dans le bon ordre en ajoutant des "-" entre chaque
$dateMySQL = $dates[2] . "-" . $dates[1] . "-" . $dates[0];
return $dateMySQL;
}
?>
<?php
$date = dateMySQL($_POST['DateTicket']);
$heure = $_POST['HeureTicket'];
?>
<?php
$NomClient = $_POST['NomClient'];
$RecepteurTicket = $_POST['RecepteurTicket'];
$InterlocuteurClient = $_POST['InterlocuteurClient'];
$SujetTicket = $_POST['SujetTicket'];
$AffectationTicket = $_POST['AffectationTicket'];
$sql = "INSERT INTO `hotlinecc`.`tb_ticket` (`IndexTicket`,`NomClient`, `DateTicket`, `HeureTicket`, `RecepteurTicket`, `InterlocuteurClient`, `SujetTicket`, `AffectationTicket`, `StatutTicket`)
VALUES('A','$NomClient','$date','$heure','$RecepteurTicket','$InterlocuteurClient','$SujetTicket','$AffectationTicket','En cours')";
$res = mysql_query($sql);
if ($res) {
print '<script language="javascript">
alert("Votre ticket à bien été pris en compte dans la base de donnée");
location.href = "Principal.php?page=4";
</script>';
} else {
echo "Erreur !!";
}
?>
<?php
require_once('connexion.php');
?>
<?php
function dateMySQL($date) {
// On découpe la date selon les "/"
$dates = explode("/", $date);
// On replace les jours, mois et années dans le bon ordre en ajoutant des "-" entre chaque
$dateMySQL = $dates[2] . "-" . $dates[1] . "-" . $dates[0];
return $dateMySQL;
}
?>
<?php
if ( (isset($_POST['DateTicket']) )&&( isset($_POST['HeureTicket']) )&&( isset($_POST['NomClient']) )&&( isset($_POST['RecepteurTicket']) )&&( isset($_POST['InterlocuteurClient']) )&&( isset($_POST['SujetTicket']) )&&( isset($_POST['AffectationTicket']) ) ){
$date = dateMySQL($_POST['DateTicket']);
$heure = $_POST['HeureTicket'];
?>
<?php
$NomClient = $_POST['NomClient'];
$RecepteurTicket = $_POST['RecepteurTicket'];
$InterlocuteurClient = $_POST['InterlocuteurClient'];
$SujetTicket = $_POST['SujetTicket'];
$AffectationTicket = $_POST['AffectationTicket'];
$sql = "INSERT INTO `hotlinecc`.`tb_ticket` (`IndexTicket`,`NomClient`, `DateTicket`, `HeureTicket`, `RecepteurTicket`, `InterlocuteurClient`, `SujetTicket`, `AffectationTicket`, `StatutTicket`)
VALUES('A','$NomClient','$date','$heure','$RecepteurTicket','$InterlocuteurClient','$SujetTicket','$AffectationTicket','En cours')";
$res = mysql_query($sql);
print '<script language="javascript">
alert("Votre ticket à bien été pris en compte dans la base de donnée");
location.href = "Principal.php?page=4";
</script>';
} else {
echo "Erreur !!";
}
?>
?
comme ça, si les valeurs sont postés, tu fais le INSERT, sinon tu affiche l'erreur, sa évite de rentrer des info vides dans la table
Donc j'ai une otre page qui m'affiche sous forme de tableau la requete sql de tous mes enregistrement
et les case dont c'est pas remplis il y a pas le border tu vois ce que je veux dire comment je pourrai faire pour k il m'affiche le contour de la cellule mm si el est vide car le contour apparait seulement quant la cellule est remplis.
Lol c'est un petit details mais sa me tracasse visuelement..
merci
autrement en laissant les cases vides... je vois pas comment faire
Si tu le réaffiches dans ta textarea, tu ne met pas de nl2br().
<?php
if(isset($_POST['SujetTicket'])){
$SujetTicketAffich = nl2br($_POST['SujetTicket']);
echo $SujetTicketAffich;
$SujetTicket = $_POST['SujetTicket'];
} else {
}
?>
et dans la page message.php je supprime ce code ? c'est ca ? lol
désolé je fait un autre trucs a coté qui est galere....
Enfin tu peux enlever ça :
$SujetTicketAffich = nl2br($_POST['SujetTicket']); echo $SujetTicketAffich;
si tu as pas besoin de l'afficher et juste de l'enregistrer.
J'ai fait 10pages sur ma note synthèse mais je sais pas si je vais réussir à en faire beaucoup plus ... :s
Je l'ai commencée il y a 2semaines à peu près ^^
Pour ton saut de ligne regarde où dans ton script ça met des <br /> dans ta base ...
Tu enlèves le nl2br à cet endroit.
Le nl2br sert juste à afficher dans ton code HTML.
sa me met dans le formulaire dans le champ sujet ticket les <br /> la ou j'ai sauté des ligne dans le texte
- 1
- 2
mais est ce que c'est possible de pas mettre les <br> lorsque je tape mon texte
tous comme je le fait la sur "comment ca marche" ?