发新话题
打印

[教程]关于DW做搜索

[教程]关于DW做搜索

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


TOP

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

附件

200413010344969483.gif (10.45 KB)

2004-1-30 18:34, 下载次数: 135

TOP

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

附件

200413010354336140.gif (10.42 KB)

2004-1-30 18:35, 下载次数: 104

TOP

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

附件

20041301039391325.gif (21.67 KB)

2004-1-30 18:39, 下载次数: 103

TOP

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

附件

200413010405075561.gif (15.62 KB)

2004-1-30 18:40, 下载次数: 97

TOP

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

附件

200413010532998829.gif (9.33 KB)

2004-1-30 18:53, 下载次数: 85

TOP

如果要想让搜索出的结果以突出的方式显示(比如用红色、加粗的字体表示),则可以在代码中加入以下代码: [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,"$1") end function %>[/run]

附件

20041301116359988.gif (15.31 KB)

2004-1-30 19:16, 下载次数: 96

TOP

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

附件

200413011183142664.gif (1.78 KB)

2004-1-30 19:18, 下载次数: 90

TOP

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

TOP

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

附件

200413013254097861.gif (16.46 KB)

2004-1-30 21:25, 下载次数: 96

TOP

楼主看看我哪里错了啊?
您搜索的“ ADODB.Field 错误 ’800a0bcd’ BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,但应用程序要求操作的是当前的记录。
/search.asp, 行41 行41是这样的:
您搜索的“<%=(Recordset1.Fields.Item("keyword").Value)%>”的结果

TOP

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

TOP

谢谢,coldstone楼主~~

TOP

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

TOP

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

TOP

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

TOP

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

TOP

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

TOP

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

TOP

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

TOP

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

TOP

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

TOP

谢谢分享了

TOP

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

TOP

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

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

TOP

发新话题