方卡在线企业建站系统前台条件筛选
  • 分类:经验分享
  • 发表:2018-01-11
  • 围观(5,305)
  • 评论(0)

方卡在线ASP系统的前台筛选,效果图如下:

后台:

前台:

实现方法:

前台根据数据生成URL,然后调用后台数据。

注意:本次修改是在ISite企业建站系统V1.2.3的基础之上修改的。

实现过程:

1、创建字段之类的就不说了,只说程序修改。

2、构建模板的我就不说了。上面字段显示的代码为:{$SearchFieldstr$}

3、JQ代码为:

$(function(){		
//筛选开始
		$("#filter li a").click(function () {
			$(this).parents("ul").children("li").each(function () {
				$('a',this).removeClass("on");
			});	
			$(this).attr("class", "on");
			{$If(0,{$ModuleId$},=)$}
			$("#filter_a").attr("href","/Search/?SearchType=1"+RetSelecteds()); 
			{$Else$}
			location.href = "/Search/?SearchType=1"+RetSelecteds();
			{$End If$}				
		});
		
		//获取传来的信息并变色
		//var fieldlist = getUrlParam('SearchFieldList');
		var fieldlist = "{$SearchFieldList$}";
		var field = fieldlist.split(",");		
		for (var i=0 ; i< field.length-1 ; i++)
		{
			fields = field[i].split("||");
			$("[date='"+fields[1]+"']").attr("class", "on");
		}
		//筛选结束
}

4、修改ASP程序,打开Class/Cls_Template.asp文件,在约580行的Public Function SearchChange(TemplateCode)函数中增加

TemplateCode=ReplaceTag(TemplateCode,"{$SearchFieldstr$}",Getfilter(SearchType))

并在该文件结尾增加函数

'==============================
	'函 数 名:Getfilter
	'作    用:获取筛选字段
	'参    数:seachType 搜索类型
	'==============================	
	Private Function Getfilter(SearchType)
		Dim sqlstr,Fieldstr,Field_option,search_Temp,SearchTypes
		Select case SearchType
		case 0
			SearchTypes = 1
		case 1
			SearchTypes = 0	
		end Select
		Sqlstr="Select * From [Fk_Field] Where Fk_Field_Isfilter=1 And Fk_Field_Model=" & SearchTypes
		Rs.Open Sqlstr,Conn,1,1
		If Not Rs.Eof Then
			Fieldstr = ""
			While (Not Rs.Eof)
				if Rs("Fk_Field_Option")<>"" Then
					Fieldstr = Fieldstr & "<ul id="""&Rs("Fk_Field_Tag")&"""><li> <strong>" & Rs("Fk_Field_Name") & "</strong><a href=""javascript:void(0);"" rel="""&Rs("Fk_Field_Tag")&""" date="""">全部</a>"
					Field_option=Split(Rs("Fk_Field_Option"),"<br />")				
					For Each search_Temp In Field_option
						If Instr(search_Temp,"||")>0 Then
							Fieldstr = Fieldstr & " <a href=""javascript:void(0);"" rel="""&Rs("Fk_Field_Tag")&""" date="""&Split(search_Temp,"||")(0)&""">" &Split(search_Temp,"||")(1)&"</a>"
						End If
					Next
					Fieldstr = Fieldstr & "</li></ul>" &vbCrLf
				End if
				Rs.MoveNext
			Wend
		End If
		Rs.Close
		Getfilter=Fieldstr
	End Function

在文件约840行

ElseIf SearchStr<>"" Then
			Sqlstr=Sqlstr&" And (Fk_Article_Title Like '%%"&SearchStr&"%%'"
			If SearchField<>"" Then
				search_TempArr=Split(SearchField,",")
				For Each search_Temp In search_TempArr
					If search_Temp="IsContent" Then
						Sqlstr=Sqlstr&" Or Fk_Article_Content Like '%%"&SearchStr&"%%'"
					Else
						Sqlstr=Sqlstr&" Or Fk_Article_Field Like '%%"&search_Temp&"|-Fangka_Field-|%%"&SearchStr&"%%'"
					End If
				Next
			End If
			Sqlstr=Sqlstr&")"
End If

的End If上面新增加

ElseIf SearchFieldList<>"" Then   '20160125提升IF结构
			search_TempArr=Split(SearchFieldList,",")
			For Each search_Temp In search_TempArr
				If Instr(search_Temp,"||")>0 Then
					Sqlstr=Sqlstr&" And Fk_Article_Field Like '%%"&Split(search_Temp,"||")(0)&"|-Fangka_Field-|%%"&Split(search_Temp,"||")(1)&"%%'"
				End If
			Next

代码。

在约1051行Select Case VauleArr(2)之上修改

if SearchFieldList<>"" Then   '20160125提升IF结构
			search_TempArr=Split(SearchFieldList,",")
			For Each search_Temp In search_TempArr
				If Instr(search_Temp,"||")>0 Then					
					If Split(search_Temp,"||")(0)="Module" Then
						Module=Cint(Split(search_Temp,"||")(1))
						if Module<>0 Then
							Rs.Open "select Fk_Module_Id From [Fk_Module] Where Fk_Module_Level="&Module,Conn,1,1
							modulestr=cstr(Module)
							While (Not Rs.Eof)
								modulestr = modulestr & "," & rs("Fk_Module_Id")
								Rs.Movenext
							Wend
							Rs.Close
							Sqlstr=Sqlstr&" And Fk_Product_Module In ("&modulestr&")"
						End if
					Else
						Sqlstr=Sqlstr&" And Fk_Product_Field Like '%%"&Split(search_Temp,"||")(0)&"|-Fangka_Field-|%%"&Split(search_Temp,"||")(1)&"%%'"
					End if'20160227结束			
					
				End If
			Next
		End if

代码。

已经将修改过的Cls_Template.asp文件上传,可以对照修改。

代码最终结果如下:Cls_Template.asp

 

Top