|
主题: ASP留言回车换行?
|
cwlcwr78
职务:普通成员
等级:1
金币:1.0
发贴:149
|
#12003/5/6 16:02:09
如何控制ASP留言内容的换行 如客户端用回车换行 显示 也是换行?
|
=ridincal=
职务:管理员
等级:7
金币:20.0
发贴:5886
|
#22003/5/6 16:06:25
提交时将回车符替换为" ": function htmlencode(str) { htmlencode=str.replace(/\n/g," "); }
编辑历史:[这消息被ridincal编辑过(编辑时间2003-05-06 16:59:26)]
|
{ 在指尖上绽放的花朵 }
职务:普通成员
等级:5
金币:14.0
发贴:3209
|
#32003/5/6 16:25:16
…… 不是吧……
好快的速度……
|
cwlcwr78
职务:普通成员
等级:1
金币:1.0
发贴:149
|
#42003/5/6 21:16:31
留言部分是
显示留言部分是 <%=rs("tietle")%> 该成 <%=rs("tietle"); tietle=replace(tietle,"<","<",">",">","<|>","vbCrLf," "," ") %> 结果是错误! 怎么该???
|
我佛山人
职务:版主
等级:4
金币:16.0
发贴:2269
|
#52003/5/7 4:32:29
<% function HTMLEncode(fString) if fString<>"" then fString = replace(fString, ">", ">") fString = replace(fString, "<", "<") fString = Replace(fString, CHR(13), "") fString = Replace(fString, CHR(10) & CHR(10), " ") fString = Replace(fString, CHR(10), " ") end if HTMLEncode = fString end function %> <%=HTMLEncode(rs("tietle").value)%>
|
cwlcwr78
职务:普通成员
等级:1
金币:1.0
发贴:149
|
#62003/5/7 12:23:24
多谢谢各位 已经搞定
|
{ 在指尖上绽放的花朵 }
职务:普通成员
等级:5
金币:14.0
发贴:3209
|
#72003/5/7 13:41:37
散人前辈最近失眠?
|
cwlcwr78
职务:普通成员
等级:1
金币:1.0
发贴:149
|
|
网络小精灵
职务:普通成员
等级:3
金币:1.1
发贴:761
|
#92005/11/29 22:00:44
ridincal在上个帖子中说 引用: 提交时将回车符替换为" ": function htmlencode(str) { htmlencode=str.replace(/\n/g," "); }
上面的代码加在哪里?我的只是一个多行文本框 <textarea name="en_details" cols="102`" rows="10" class="textarea"></textarea>
编辑历史:[此帖最近一次被 Gzink 编辑过(编辑时间:2005-11-30 11:21:40)]
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#102005/12/1 10:09:33
ridincal乃此道高手,需要有一定的悟性才能做他的学生呀。我给你一个最简单的留言程式吧。 第一个页面:guest.asp 先看代码
<%
'打开Access数据库
Function OpenAccess(MDBFileName,PIN)
Dim StrConn
StrConn="Provider=Microsoft.Jet.OLEDB.4.0"
StrConn=StrConn & ";Persist Security Info=False"
StrConn=StrConn & ";Jet OLEDB:Database Password=" & PIN
StrConn=StrConn & ";Data Source=" & Server.MapPath(MDBFileName)
Set OpenAccess=Server.CreateObject("ADODB.Connection")
OpenAccess.Open strConn
End Function
'关闭Access数据库
Sub CloseAccess(ConnAccess)
ConnAccess.Close
Set ConnAccess=Nothing
End Sub
%>
<%
Dim strSQL,objConn,objRS
Set objConn=OpenAccess("guest.mdb","")
strSQL="select * from guestbook order by gID Desc"
Set objRS=objConn.Execute(strSQL)
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>用户留言</title>
<script type="text/javascript">
//判断字符串是否为空字符串
function isNull(str){
var re=/^[ \s]*$/;
return re.test(str);
}
function checkform(obj){
if(isNull(obj.gContent.value)){
alert("请输入留言内容!");
obj.gContent.value="";
obj.gContent.focus();
return false;
}else{
return true;
}
}
</script>
</head>
<body>
<%
do while not objRS.EOF
%>
<table width="400" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="#CCCCCC"><%=objRS("gTime")%></td>
</tr>
<tr>
<td><%=Replace(objRS("gContent"),vbCrLf,"<br>")%></td>
</tr>
</table>
<%
objRS.MoveNext
loop
CloseAccess objConn
%>
<form name="form1" method="post" action="recordguest.asp" onsubmit="return checkform(this);">
<table width="400" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="center">用户留言</td>
</tr>
<tr>
<td align="center">
<textarea name="gContent" cols="50" rows="5" id="gContent"></textarea>
</td>
</tr>
<tr>
<td align="center"><input type="submit" name="Submit" value="提交">
</td>
</tr>
</table>
</form>
</body>
</html>
页面执行效果 图片如下:
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#112005/12/1 10:27:41
guest页面有两个功能,先显示用户的留言,再提交表单供用户留言。 这真的是个很简单的留言板,只记录了用户的留言时间和留言内容。 最上面是两个通用的函数,用来打开和关闭Access数据库。 strSQL="select * from guestbook order by gID Desc" gID是自增字段,使得显示留言时,最后的留言最先显示(显示在上面)
再看表单部分 <form name="form1" method="post" action="recordguest.asp" onsubmit="return checkform(this);">
在表单提交前,我们通常希望对表单的数据进行验证,通过验证后再交给后台程序来处理。所以在<form>标记中加入了 onsubmit="return checkform(this);",当用户点击了提交按钮后,先去执行函数checkform(),如果这个函数返回true,表单就提交,如果这个函数返回false,表单不提交。
再来看checkform()函数 function isNull(str){ var re=/^[ \s]*$/; return re.test(str); } function checkform(obj){ if(isNull(obj.gContent.value)){ alert("请输入留言内容!"); obj.gContent.value=""; obj.gContent.focus(); return false; }else{ return true; } }
isNull()函数用来判断字符串是否为空或等效于空,如用户只输入了空格,那么等效于空。 当留言为空时,提示用户“请输入留言内容!”,将多行留言输入框的内容清空,并将焦点移到输入框,返回false,禁止表单提交。
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#122005/12/1 10:30:03
Gzink在上个帖子中说 引用: ridincal在上个帖子中说 引用: 提交时将回车符替换为" ": function htmlencode(str) { htmlencode=str.replace(/\n/g," " }
上面的代码加在哪里?我的只是一个多行文本框 <textarea name="en_details" cols="102`" rows="10" class="textarea"></textarea>
就是放在这里的,可以在checkform()函数中调用就成了。
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#132005/12/1 10:31:45
再来看第二个页面,提交处理页面:recordguest.asp
<%
Dim gContent
gContent=Request("gContent")
gContent=Replace(gContent,"'","''")
Dim strSQL,objConn
Set objConn=OpenAccess("guest.mdb","")
strSQL="Insert into guestbook (gContent) Values('" & gContent & "')"
objConn.Execute(strSQL)
CloseAccess objConn
Response.Redirect "guest.asp"
%>
<%
'打开Access数据库
Function OpenAccess(MDBFileName,PIN)
Dim StrConn
StrConn="Provider=Microsoft.Jet.OLEDB.4.0"
StrConn=StrConn & ";Persist Security Info=False"
StrConn=StrConn & ";Jet OLEDB:Database Password=" & PIN
StrConn=StrConn & ";Data Source=" & Server.MapPath(MDBFileName)
Set OpenAccess=Server.CreateObject("ADODB.Connection")
OpenAccess.Open strConn
End Function
'关闭Access数据库
Sub CloseAccess(ConnAccess)
ConnAccess.Close
Set ConnAccess=Nothing
End Sub
%>
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#142005/12/1 10:41:06
这个处理程序也非常简单,去掉公用的打开关闭数据库代码,只有10来行了。
先取得用户提交的留言内容 gContent=Request("gContent")
然后将留言内容中的单引号替换成两个单引号 gContent=Replace(gContent,"'","''") (因为SQL语句中,用'来作界定符,所以要使用两个单引号来表示')
然后将留言插入数据库。数据库只有三个字段: gID:自增字段,关键字 gContent:文本字段,长200,用来存放留言内容 gTime:时间字段,默认值为Now(),当前时间。
最后,重新导向到第一个页面,就可以看到刚才的留言了。(第一个)
在显示留言内容时,执行了一个替换(第一个页面): <%=Replace(objRS("gContent"),vbCrLf,"<br>")%> 将留言内容中的换行符vbCrLf替换成HTML的<br>标签了。如果要将留言内容仍然显示在多行文本框内,则不需要这种替换了。
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#152005/12/1 10:43:45
不知说明白了没,就当作是给初学的弟兄们一个小教程吧。原文件在这里: 相关文件(rar): 点这儿打开
|