Published: Sunday, November 21, 1999
Correctly Displaying the Results from a TEXTAREA
If you need to let your visitors enter a large amount of textual information, using TEXTAREAs
are the way to go. TEXTAREAs are those large, multi-row text boxes. For example, here is
a TEXTAREA with 40 columns and 5 rows, created using the following HTML code:
(For more information on TEXTAREA, see
Microsoft's HTML Documentation.)
The user can enter information on several lines, and spaces and carraige returns can be used to
format the text within the TEXTAREA. Imagine that we saved the results of the TEXTAREA
into a database field, and, at some later time, wish to display that database field on a web page.
When we attempt to display the results, they will all be on one line, and the spaces will be ignored!
For example, say that someone enters into a TEXTAREA the following text:
My little horse must think it queer
to stop without a farmhouse near
Between the wood and frozen lake,
the coldest evening of the year.
If we attempt to display this (either directly when the form is submitted, or sometime later, if the
results are stored in a database), the output on a web page will be:
My little horse must think it queer
to stop without a farmhouse near
Between the wood and frozen lake,
the coldest evening of the year.
This is because when your browser renders HTML, it ignores whitespace. To signify a line break, you
need to use the <BR> tag; to force a space, you need to use .
A line break, when entered into a TEXTAREA is saved as a carraige-return-line-feed,
vbCrLf. We can use the
Replace function to replace all vbCrLfs with <BR> before
we display the contents of the TEXTAREA. Similarly, we can replace all spaces with
.
For example, if we create a TEXTAREA in a form, using the following code:
the form processing script DisplayTextArea.asp will be loaded when the user clicks submit.
We can then display the value entered by the user in the TEXTAREA with the following line
of code in DisplayTextArea.asp:
Response.Write Request.Form("Poetry")
|
However, this will not display the carraige returns and spaces entered by the user in the TEXTAREA.
To show the spaces and carraige returns, we will need to use the Replace function. We
will begin by reading the value of Request.Form("Poetry") into a string variable- we will then
use the Replace functiont twice, once to replace vbCrLfs with <BR>
and once to replace spaces with . Here is the code!
'Read in the value of the TEXTAREA
Dim strPoetry
strPoetry = Request.Form("Poetry")
'Replace all vbCrLf with s
strPoetry = Replace(strPoetry, vbCrLf, " ")
'Replace all spaces with
strPoetry = Replace(strPoetry, " ", " ")
'Output the formatted TEXTAREA value:
Response.Write strPoetry
|
That's it! If you are storing the result of the TEXTAREA into a database, you can perform
these steps before you insert the record, or each time you need to display the results on an HTML
page. I'd recommend using the latter approach, since using the former approach mixes the data for your
application with the presentation of your application, which is ill-advised.
Happy Programming!