Solved

Extra space and carriage returns in my textarea field.

Posted on 2008-11-01
8
864 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
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 

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

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Browsers only know CSS so your awesome SASS code needs to be translated into normal CSS. Here I'll try to explain what you should aim for in order to take full advantage of SASS.
Since pre-biblical times, humans have sought ways to keep secrets, and share the secrets selectively.  This article explores the ways PHP can be used to hide and encrypt information.
In this tutorial viewers will learn how to style rounded corners for elements in CSS using the border-radius property Begin with a normal styled element such as a div: To style all four corners of the div to be the same degree of roundness, use the …
In this tutorial viewers will learn how to embed custom externally-hosted Google Fonts using the Google Font API in CSS Go to the Google Fonts website at google.com/fonts: Browse or search based on font properties or name to find a suitable font for…

758 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

17 Experts available now in Live!

Get 1:1 Help Now