查看完整版本: [教程]关于DW做搜索

coldstone 2004-1-30 18:34

[教程]关于DW做搜索

看到论坛上有朋友问起,就做了这个教程。相信对不会用DW做搜索的朋友可能还是会有帮助的。
<br>
1、首先要建立一个搜索的表单:
[upload=gif]uploadfile/200413010321188253.gi
<br><br><br>

coldstone 2004-1-30 18:34

这个表单中有一个文本框keyword,属性如下:
[upload=gif]uploadfile/200413010344969483.gi

coldstone 2004-1-30 18:35

表单Form1的属性如下,action指向处理搜索结果页search.asp:
[upload=gif]uploadfile/200413010354336140.gi

coldstone 2004-1-30 18:39

然后制作处理搜索结果页search.asp,页面的界面设计和其它页面一致,这里从建立记录集开始,建立搜索结果的记录集,注意方框内的选择内容:
[upload=gif]uploadfile/20041301039391325.gi

coldstone 2004-1-30 18:40

可以切换到高级视图看一看生成的SQL语句:
[upload=gif]uploadfile/200413010405075561.gi

coldstone 2004-1-30 18:53

然后在显示搜索结果的地方把记录集绑定即可:
[upload=gif]uploadfile/200413010532998829.gi

coldstone 2004-1-30 19:17

如果要想让搜索出的结果以突出的方式显示(比如用红色、加粗的字体表示),则可以在代码中加入以下代码:
[upload=gif]uploadfile/20041301116359988.gi
[run]
<%
function ShowBold(theField)
Set objRegExp= New RegExp
objRegExp.Pattern="(" & Request.Form("keyword") & ")"
objRegExp.IgnoreCase=True
objRegExp.Global=True
ShowBold=objRegExp.Replace(theField,"<font color=red><b>$1</b></font>")
end function
%>[/run]

coldstone 2004-1-30 19:19

然后在要突出显示的地方加上以下代码:
ShowBold
[upload=gif]uploadfile/200413011183142664.gi
<br>

leadfoot 2004-1-30 20:15

如果用下拉菜单,在加上输入的信息,该怎样设置search页,应该传会的是2个参数.

coldstone 2004-1-30 21:25

如果用下拉菜单的话,添加变量即可。还可以添加更多的变量结合SQL中的OR和AND来设置更丰富的搜索条件,可以自己试试:
[upload=gif]uploadfile/200413013254097861.gi

仙子 2004-1-30 23:12

楼主看看我哪里错了啊?
<br>
您搜索的“
ADODB.Field 错误 ’800a0bcd’
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,但应用程序要求操作的是当前的记录。
<br>
/search.asp, 行41

行41是这样的:
    <td height="16">您搜索的“<%=(Recordset1.Fields.Item("keyword").Value)%>”的结果 </td>

coldstone 2004-1-31 01:12

你数据表里有keyword这个字段吗?

leadfoot 2004-1-31 04:13

谢谢,coldstone楼主~~:)

仙子 2004-1-31 19:15

表中有这个字段啊。楼主,六楼的最上面怎么是form.keyword呢,我的记录集的名称也是search,form.keyword是什么意思怎么弄的?

coldstone 2004-2-1 08:07

那可能是因为你搜索的内容没有找到。你可以在“服务器行为”面板中找到“如果记录集为空则显示”,把这个用在你的search的记录集上。
代码就是加上:
<% If Not search.EOF Or Not search.BOF Then %>
原来要显示的搜索结果
<% End If %>
<br>
至于显示{form.keyword},其实是<% Request.Form("keyword") %>。

Nickol 2004-2-1 19:39

这个只能找到符合条件的第一条记录,怎么能搜索到全部符合条件的记录

coldstone 2004-2-2 04:27

选择要重复的内容,然后“服务器行为”→“重复区域”→选择记录集→“所有记录”

仙子 2004-2-4 01:04

这个还是不会啊。不知道<% Request.Form("keyword") %>这句应该写在哪里啊?

仙子 2004-2-4 18:50

呵呵,又是我啊。现在可以搜索出来了,但是输入的搜索内容在显示页却不显示,我是这样的:
            您搜索的“这里是一个表单的文本域”结果:
我把文本域的初始值设为:<% Request.Form("keyword") %>但这样是不显示的啊。
[fly]楼主再帮我看看啊。[/fly]

coldstone 2004-2-4 21:03

不用做文本域,把<%=Request.Form("keyword") %>放在那里就行了。
如:
您搜索的“[color=red]<%=Request.Form("keyword") %>[/color]”结果:
<br>
要有"="号

finaly 2007-5-22 09:20

附件: 您所在的用户组无法下载或查看附件
这是什么意思 呀

laoshu1 2007-5-28 15:41

顶一下先!路过了!学习了啊

gie 2007-5-29 19:17

谢谢分享了

fchnipj 2007-6-6 11:31

很好得教程哈。不过看得还是有点迷糊。

218518 2008-6-12 21:26

小弟我做了一个搜索,照方法做了,但我是在同一个页显示搜索结果的,它总是提示错误类型:
Microsoft VBScript 编译器错误 (0x800A0401)
语句未结束
/admin/type_1.asp, line 4, column 28
[b]var jieguo__MMColParam = "%";[/b]

[font=Courier New]代码是这样的[/font]
<%
var jieguo__MMColParam = "%";
if (String(Request.Form("keyword")) != "undefined" &&
    String(Request.Form("keyword")) != "") {
  jieguo__MMColParam = String(Request.Form("keyword"));
}
%>
其中%是指想没有搜索条件的情况下默认显示所有记录,但试过多种方法,它总是提示这个,我用的是post方式get也试了,一个结果,请版主看看,倒底是怎么回事,急!!!!!
页: [1]
查看完整版本: [教程]关于DW做搜索