问征夫以前路
感谢所有关心过支持过我的人, 感谢所有恨过我嘲笑过我的人 !
posts - 30,comments - 147,trackbacks - 0

  最近做的项目中遇到了一个很棘手的问题,请来往的高手帮忙解决,感激不尽!

  想把textarea中的文字(包含回车和换行)存入oracle中,但是存入的时候如果不处理回车换行存入到数据库就会出现数据丢失。另外,从数据库里读出来的时候,还要让回车换行正常显示。该字段是VARCHAR2类型,怎么解决呢?

  本项目用的是jsp+servlet架构,所有数据的增、删、改、查都是在jsp页面用javascript进行的处理。如下:

 1<script language="javascript">
 2function sendReq() {
 3    var desc = addForm.dept_user_desc.value.replace(/^(&nbsp;)+|^[\s ]+|(&nbsp;)+$|[\s ]+$/g, "" );
 4  if (desc.length>50{
 5    alert("<%=pageMsgs.getString("descdn")%>");
 6    addForm.dept_user_desc.focus();
 7    return false;
 8  }
 
 9  
10  var xmlData;
11  xmlData = '<?xml version="1.0" encoding="UTF-8"?>';
12  xmlData += '<data>';
13  
14  xmlData += '<pri_keys>';
15  xmlData += '<pk>';
16  xmlData += '<pk_name>dept_user_id</pk_name>';
17  xmlData += '<pk_type>' + <%=("" + ParamInfo.T_INT)%> + '</pk_type>';
18  xmlData += '</pk>';
19  xmlData += '</pri_keys>';
20  
21  xmlData += '<fields>';
22  
23  xmlData += '<field>';
24  xmlData += '<field_name>dept_id</field_name>';
25  xmlData += '<field_type>' + <%=ParamInfo.T_INT%> + '</field_type>';
26  xmlData += '<field_value>' + <%=deptId%> + '</field_value>';
27  xmlData += '</field>';  
28  
29  xmlData += '<field>';
30  xmlData += '<field_name>user_id</field_name>';
31  xmlData += '<field_type>' + <%=ParamInfo.T_INT%> + '</field_type>';
32  xmlData += '<field_value>' + addForm.user_id.value + '</field_value>';
33  xmlData += '</field>';
34  
35  xmlData += '<field>';
36  xmlData += '<field_name>regular_id</field_name>';
37  xmlData += '<field_type>' + <%=ParamInfo.T_INT%> + '</field_type>';
38  xmlData += '<field_value>' + addForm.regular_id.value + '</field_value>';
39  xmlData += '</field>';
40  
41  xmlData += '<field>';
42  xmlData += '<field_name>dept_user_desc</field_name>';
43  xmlData += '<field_type>' + <%=ParamInfo.T_STRING%> + '</field_type>';
44  xmlData += '<field_value><![CDATA[' +  addForm.dept_user_desc.value.replace(/^(&nbsp;)+|^[\s ]+|(&nbsp;)+$|[\s ]+$/g, "" ) + ']]></field_value>';
45  xmlData += '</field>';
46  
47  xmlData += '</fields>';
48  
49  xmlData += '<table_name>c_dept_user</table_name>'
50  xmlData += '<base_name>dept_user</base_name>';
51  xmlData += '</data>';
52  
53  addForm.eventData.value = xmlData;
54  addForm.submit();
55  
56}

57</script>


在Form里面写到desc,这里面用到了textarea。上面代码加入了对textarea输入文字的验证。

1  <tr>
2    <td align="left"><%=pageMsgs.getString("dept_user_desc")%></td>
3    <td align="left">
4       <textarea name="dept_user_desc" class="textfield" cols="50" rows="5"><%=deptUserDesc%></textarea>
5    </td>
6  </tr>

  当输入文字换行的时候,存入数据库的文字只有回车后的字符,回车换行之前的字符都已丢失。
有遇到此类问题的朋友,请留下宝贵意见,谢谢!

posted on 2007-11-16 17:37 kenzhang 阅读(5189) 评论(8)  编辑  收藏

FeedBack:
# re: 难解决的textarea中的回车和换行问题
2007-11-18 18:52 | 怎么羡慕天空的飞鸟
关注!呵呵  回复  更多评论
  
# re: 难解决的textarea中的回车和换行问题
2007-11-19 12:03 | 隔叶黄莺
数据库中是应该存储了所有的内容,你看看字符串长度就知道,可者调试状态看看字符串是怎么显示的。

有问题,可联系我 QQ:1125535  回复  更多评论
  
# re: 难解决的textarea中的回车和换行问题
2007-11-19 21:45 | 怎么羡慕天空的飞鸟
我测了一下,在oracle里存的表面上是空格,但从数据库提取出来并放到文本域里面后仍然是换行,没有问题啊!  回复  更多评论
  
# re: 难解决的textarea中的回车和换行问题
2007-11-20 09:22 | kenzhang
@怎么羡慕天空的飞鸟
好像没有看明白我说的问题,像这样,我输入:
“郭靖

杨康

东邪

北丐----”
我在每一行输入几个字之后换行,这样存入数据库后只能存入“ 北丐----”(注:“北丐”前面就是你说的‘在oralce里存的表面上是空格’)。这样再从数据库里面读出来就是“换行 北丐----”,前面的“郭靖 杨康 东邪”都已丢失。
这个问题其实在数据存入数据库之前,数据就已经丢失了,所以再从数据库里面读数据,显示的还是丢失了之后的数据。还好,问题在昨天已经解决了,稍后会在下一篇的随笔里面写明解决问题的办法。谢谢支持!  回复  更多评论
  
# re: 难解决的textarea中的回车和换行问题[未登录]
2010-05-26 00:33 | z
1.测试测试测试测试测试测试
1.测试测试测试测试测试测试
1.测试测试测试测试测试测试  回复  更多评论
  
# re: 难解决的textarea中的回车和换行问题
2011-07-19 18:09 | 事实上
测是回车











































































































































































































































































































































  回复  更多评论
  
# re: 难解决的textarea中的回车和换行问题[未登录]
2014-08-25 11:00 |








在  回复  更多评论
  
# re: 难解决的textarea中的回车和换行问题[未登录]
2014-08-25 11:01 |
1
1
1
1

1
1
1
1
1

1  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: