Solved

Extra space and carriage returns in my textarea field.

Posted on 2008-11-01
8
868 Views
Last Modified: 2013-12-13
When I have my user submit some text in a textarea field on my form, I'm getting the text, but the first line is substantially indented and I invariably get some extra <BR> in the text. I have the code attached. Could someone please show me how to get rid of the indent and the extra line breaks.

Thanks!

Maybe it's a CSS issue, but I have my TEXTAREA set as

TEXTAREA {
      width:700px;
      height:250px;
      font-family: Verdana, Microsoft Sans Serif;
      font-size: 14px;
      color: #000000;
      }

So, I'm open to suggestions...
$text = $_POST['short_story'];

$textBr = nl2br($text);

$finaltext = addslashes($textBr);
 

$mainbody = $_POST['main_body'];

$textBody = nl2br($mainbody);

$bigstory = addslashes($textBody);
 

$article_date = date('Y-m-d', strtotime($_POST['article_date']) );
 

$insert = "insert into news (headline, short_story, article_date, main_body)

values ('$slash_headline', '$finaltext', '$article_date', '$big_story')";

$insertexe = mysqli_query($cxn, $insert)

or die ("Couldn't execute query.");

Open in new window

0
Comment
Question by:brucegust
  • 5
  • 2
8 Comments
 
LVL 39

Expert Comment

by:Roger Baklund
ID: 22857169
If it's only the first line, you can user the trim() function:
$text = trim($_POST['short_story']);

$mainbody = trim($_POST['main_body']);

Open in new window

0
 

Author Comment

by:brucegust
ID: 22857234
I did that and while it didn't correct the issue, I think it may have identified the problem.

I'm getting an extra line break, I think, in the UPDATE statement and I don't know how. Even after I do "trim," I still get a bit indent. But I'm wondering, now, if that indent that I see is actually a line break, but it's just showing up as an indent in the textarea field.

What do you think?
0
 
LVL 2

Expert Comment

by:vbsquickresponse
ID: 22857438
try with replace statement to replace <BR> with empty string or somthing like that
0
 
LVL 39

Expert Comment

by:Roger Baklund
ID: 22857476
What UPDATE statement? Your example has only an INSERT statement.

Where do you see the indent that you think might be a line break? In the textarea before the insert? Or in a different textarea after reading the text from the database?

If you are going to update the text using a textarea, you should not use  nl2br() when you INSERT the data. This function converts linefeeds to <br> html elements. You probably don't need those in the database. You should rather use the nl2br() function when you output the text from the database to a "normal" web page, i.e. not in the textarea.
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

Author Comment

by:brucegust
ID: 22857676
cxr - OK, I've eliminated the nl2br dynamic and you're right, it wasn't necessary and it was introducing additional breaks that I didn't need.

But even after cleaning it up, I still get a monster indent on the textarea that displays the text when I'm going to try and edit it.

Any ideas?
0
 
LVL 39

Expert Comment

by:Roger Baklund
ID: 22857709
Show us the code that creates the edit page, or at least the part that outputs the <textarea>
0
 
LVL 39

Accepted Solution

by:
Roger Baklund earned 500 total points
ID: 22858186
You probably have an error in the edit page. There should not be any spaces between the <textarea> tag and your variable. A single linefeed after the <textarea> tag is allowed, though:
# wrong

echo "<textarea>

      $message

      </textarea>";
 

# wrong

      <textarea>

      <?php echo $message; ?>

      </textarea>
 

# correct

echo "<textarea>$text</textarea>";
 

# correct

echo "<textarea>

$text

</textarea>";
 

# correct

      <textarea><?php echo $text; ?></textarea>
 

# correct

      <textarea>

<?php echo $text; ?>

      </textarea>

Open in new window

0
 
LVL 39

Expert Comment

by:Roger Baklund
ID: 22858226
... the last "correct" is not so good, it will insert spaces in the last line... the example should have been like this:

      <textarea>
<?php echo $text; ?>
</textarea>
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

As a result of several questions about how to use Bootstrap I thought it would be a good idea to write down the development aspect of creating a Bootstrapped website in as little time as possible. Part 1 of this article will only concentrate on g…
Introduction This article is intended for those who are new to PHP error handling (https://www.experts-exchange.com/articles/11769/And-by-the-way-I-am-New-to-PHP.html).  It addresses one of the most common problems that plague beginning PHP develop…
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.
Learn how to create flexible layouts using relative units in CSS.  New relative units added in CSS3 include vw(viewports width), vh(viewports height), vmin(minimum of viewports height and width), and vmax (maximum of viewports height and width).

867 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now