鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > cms安装教程 > 科汛cms > >

科讯CMS万能搜索,支持自定义字段搜索,不强制填写搜索的实现方

来源:互联网 作者:佚名 时间:2015-01-21 12:25
此帖看了。非常好。并成功制作了搜索。 但有个问题。 三项必须都有内容都能搜索。 我想 行业类型 增加一个 不限。 也就是可以 不选择行业 也可以搜索。这样用户搜索就方便多了。何不是必须选择行业 因为,有些页面又想单独搜索 地区,或者单独搜索行业类型

此帖看了。非常好。并成功制作了搜索。

但有个问题。

科讯CMS万能搜索,支持自定义字段搜索,不强制填写搜索的实现方法

 

三项必须都有内容都能搜索。

我想 行业类型 增加一个 不限。

也就是可以 不选择行业 也可以搜索。这样用户搜索就方便多了。何不是必须选择行业

因为,有些页面又想单独搜索 地区,或者单独搜索行业类型

用户不选,就表示不限制分类了

 

<select name=”KS_ZWLX“>

<option value=”">选择行业类别</option>

<option value=”计算机硬件及网络设备”>计算机硬件及网络设备</option>

<option value=”计算机软件”>计算机软件</option>

<option value=”IT服务(系统/数据/维护)/多领域经营”>IT服务(系统/数据/维护)/多领域经营</option>

</select>

 

对应的搜索程序里可以改下,如:

 

If ChannelID=110 Then

if ks.s(“ks_zwlx”)<>”" then Param= Param & ” and KS_ZWLX=’” & KS.S(“KS_ZWLX”) & “‘”

if ks.s(“ks_gzd”)<>”" then param=param & ” and KS_GZD=’” & KS.S(“KS_GZD”) & “‘”

End If

 

==============================

 

还有个问题。。。

 

现在是自定义的不限了。

 

但默认的还是限定一定要输入。比如这里的“公司名称职位”

 

因为有个情况。

 

比如:只要查询 天津 地区的所有工作。

 

================================

 

Sub ArticleSearch()
Dim SqlStr,Param
Param=” Where Verific=1 And DelTF=0″

 

If KeyWord<>”" Then
Select Case SearchType
Case 100
If IsDate(KeyWord) Then
If CInt(DataBaseType) = 1 Then
Param=Param & ” And AddDate>=’” & KeyWord & ” 00:00:00′ and AddDate<=’” &KeyWord & ” 23:59:59′”
else
Param=Param & ” And AddDate>=#” & KeyWord & ” 00:00:00# and AddDate<=#” &KeyWord & ” 23:59:59#”
end if
Else
Exit Sub
End If
Case 1
If (FuzzySearch=1) Then
For I=0 To Ubound(KeyWordArr)
If I=0 Then
Param=Param & ” And (Title Like ‘%” & KeyWordArr(i) & “%’”
Else
Param = Param & ” or Title Like ‘%” & KeyWordArr(i) & “%’”
End If
Next
Else
Param=Param & ” And (Title Like ‘%” & KeyWord & “%’”
End If
Param=Param & “)”
Case 2:Param=Param & ” And ArticleContent Like ‘%” & KeyWord & “%’”
Case 3:Param=Param & ” And Author Like ‘%” & KeyWord & “%’”
Case 4:Param=Param & ” And Inputer Like ‘%” & KeyWord & “%’”
Case 5:Param=Param & ” And KeyWords Like ‘%” & KeyWord & “%’”
Case else
if (FuzzySearch=1) Then
For I=0 To Ubound(KeyWordArr)
If I=0 Then
Param=Param & ” And (Title Like ‘%” & KeyWordArr(i) & “%’”
Else
Param = Param & ” or Title Like ‘%” & KeyWordArr(i) & “%’”
End If
Next
Else
Param=Param & ” And (Title Like ‘%” & KeyWord & “%’ or Author Like ‘%” & KeyWord & “%’”
End If
Param=Param & “)”
End Select

 

End If
If ClassID<>”0″ Then Param=Param & ” And Tid In(” & KS.GetFolderTid(ClassID) & “)”

 

红色的判断下

 

当然在前面要删除一段提示没有输入关键字的代码
Private Sub Class_Initialize()
Set KS=New PublicCls
Set KMR=New Refresh
MaxPerPage=10
If KS.S(“page”) <> “” Then
CurrentPage = CInt(Request(“page”))
Else
CurrentPage = 1
End If
Dim RefreshTime:RefreshTime = 2 ‘设置防刷新时间
If DateDiff(“s”, Session(“SearchTime”), Now()) < RefreshTime Then
Response.Write “<META http-equiv=Content-Type content=text/html; chaRset=gb2312><meta HTTP-EQUIV=REFRESH CONTENT=”&RefreshTime&”><br>本页面起用了防刷新机制,请不要在”&RefreshTime&”秒内连续刷新本页面<BR>正在打开页面,请稍后……”
Response.End
End If
Session(“SearchTime”)=Now()
ChannelID=KS.ChkClng(KS.S(“ChannelID”))

 

If ChannelID=0 Then Call KS.AlertHintScript(“你没有选择搜索类型!”):response.end
ClassID=KS.S(“ClassID”):If ClassID=”" Then ClassID=”0″
SearchType=KS.ChkCLng(KS.S(“SearchType”))
KeyWord=KS.CheckXSS(KS.R(KS.S(“KeyWord”)))
If KeyWord=”" Then KeyWord=KS.CheckXSS(KS.S(“Tags”))
KeyWordArr=Split(KeyWord,” “)
If KeyWord=”" and channelid<>8 Then Call KS.AlertHintScript(“你没有输入搜索关键字!”):response.end

 

End Sub

 

红色这一段删除吧
再就是

 

KeyWordArr=Split(KeyWord,” “)

 

由于keyword为空,所以还要加下判断,如

 

If KeyWrod<>”" then

 

KeyWordArr=Split(KeyWord,” “)

 

end if

 

所以, 公司名称职位也不想填写。

 

但这个时间问题来了,会提示 “变量未定义”的错误。

If KeyWrod<>”" then

KeyWordArr=Split(KeyWord,” “)

end if

下添加

Dim KeyWrod

 

即解决。。。

网友评论
<