Jump to content

Using nl2br to add line breaks in textarea field


trevb

Recommended Posts

Hi all,

 

I would be very appreciative if I could solicit someone's help as it relates to the use of nl2br. Essentially, I'm trying to maintain line breaks when a user adds information to a textarea field. Now, this is fairly straight forward, but I've run into a few problems I'm sure someone here could fix up pretty quickly.

 

Below is how I;m currently using nl2br:

 

$row->custom1 = ampReplace( nl2br($row->custom1) );

$row->custom2 = ampReplace( nl2br($row->custom2) );

$row->custom3 = ampReplace( nl2br($row->custom3) );

 

Now this works ok, as it adds the required line breaks to the field. The problem occurs when a user makes additional changes to the form and resubmits it. Now it adds an additional line break to the form, so it now appears with two carriage returns. If he/she re-edits it, there would be three <br /> tags.

 

So my question is twofold:

 

1. How can I use nl2br (or some other method) to maintain line break within a text area field without displaying the <br /> tag when the form is re-edited?

2. How can I avoid multiple line breaks when the form is edited and re-submitted?

 

I apologize if this has been touched on before. I begin all posts by first searching previous posts, but I either did not find what I was looking for, or failed to understand what was being explained.

 

Thank you all in advance!

 

Trev B

Link to comment
Share on other sites

the trick is dual storage (the same holds true with BB tags)  what you do is you carry across the raw data (in your case the $_POST data) as a variable apply your basic sanatizing to it except for nl2br then store a formatted version with nl2br and then you can have both i.e

<?php
$var = $_POST['textarea'];
$var_1 = mysql_real_escape_string(strip_tags($var);
$var_2 = nl2br($var1);
//now you want to re  echo that text area so you do
echo "<textarea>".$var_1."</textarea>";
//But you want to show the formatted output farther down
echo "Formatted stuff:".$var_2;
?>

Makes sense, its easier than trying to reverse it after you nl2br it

Link to comment
Share on other sites

the trick is dual storage (the same holds true with BB tags)  what you do is you carry across the raw data (in your case the $_POST data) as a variable apply your basic sanatizing to it except for nl2br then store a formatted version with nl2br and then you can have both i.e

<?php
$var = $_POST['textarea'];
$var_1 = mysql_real_escape_string(strip_tags($var);
$var_2 = nl2br($var1);
//now you want to re  echo that text area so you do
echo "<textarea>".$var_1."</textarea>";
//But you want to show the formatted output farther down
echo "Formatted stuff:".$var_2;
?>

Makes sense, its easier than trying to reverse it after you nl2br it

 

Makes perfect sense. Let me give this a shot and if I have any problems I will let you know.

 

Thanks for taking the time to provide assistance!

 

Cheers!

 

Trev b

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.