使用<textarea> </textarea>时的尾随空格

时间:2012-02-02 21:28:33

标签: php javascript html textarea

<tr>
    <td>
        <b>Escalation: 
    </td></b>
    <td>
        <TextArea name='escalation' onKeyDown=\"limitText(this.form.escalation,this.form.countdown,100);\"     
onKeyUp=\"limitText(this.form.escalation,this.form.countdown,100);\">$Text</textarea>You have <input readonly type=\"text\" name=\"countdown\" size=\"3\" value=\"100\"> characters left.
    </td>
</tr>

这是我尝试使用的代码的摘录。基本上我正在尝试使用存储在php变量中的值填充文本区域,该变量来自SQL数据库。 Javascript函数将块中的文本数量限制为100个字符。

问题是它用空格填充初始值中没有使用的空间!我在两个引号之间打印了$ Text,所以我知道它在数据库中没有空格,但它没有。您还可以清楚地看到我在textarea标签之间没有任何空间,所以这不是我看到其他海报的问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

是的,我以前见过这种行为。检查您从数据库中读取值的列是“CHAR”类型还是键入“VARCHAR”。始终对可变长度(VARCHAR)字段类型使用固定长度(CHAR)更有效,因此有时以这种方式设计数据库。缺点是存储在这些字段中的较短数据总是用空格填充。

解决方案:您的PHP中可能有一行看起来像这样:

$Text = $row['text'];

将该行更改为以下内容:

$Text = trim($row['text']);

'trim'功能将去除前导和尾随空格。如果您使用固定长度字段,请记住您还必须填写您写入数据库的值。这意味着您必须在要写入数据库的字符串中添加前导空格,以便为固定宽度字段设置适当的长度。