Link to home
Start Free TrialLog in
Avatar of Bruce Gust
Bruce GustFlag for United States of America

asked on

Extra space and carriage returns in my textarea field.

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

Avatar of Roger Baklund
Roger Baklund
Flag of Norway image

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

Avatar of Bruce Gust

ASKER

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?
try with replace statement to replace <BR> with empty string or somthing like that
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.
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?
Show us the code that creates the edit page, or at least the part that outputs the <textarea>
ASKER CERTIFIED SOLUTION
Avatar of Roger Baklund
Roger Baklund
Flag of Norway image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
... 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>