账号通
    

账号  

密码  

15013

查看

33

回复
主题:[分享]科讯9.04地区分类实现省市县三级联动 [收藏主题] 转到:  
ldxyiran 当前离线

204

主题

8

广播

2

粉丝
添加关注
级别:二年级

用户积分:386 分
登录次数:218 次
注册时间:2009/10/8
最后登录:2015/12/7
ldxyiran 发表于:2013/5/20 22:52:19   | 显示全部帖子 查看该作者主题 楼主 
科汛在线考试系统(NET)

一直搞不明白为什么科讯ASP系列程序的地区分类只有二级,,不知道市下边还有县的么,,,,,

实现思路:在KS_Province数据表中增加GradeID字段来控制城市的分级。

效果:

点击查看原图

省级

点击查看原图

市级

点击查看原图

县级

点击查看原图

县级添加

点击查看原图

文章添加调用

数据库修改:
1、KS_Data/KesionCMS9.mdb:在KS_Province数据表中增加GradeID字段,数据类型为数字,长整型即可。
2、修改KS_Article、KS_Enterprise、KS_User以及文章类型模型的数据库,在其中增加County字段,文本型,长度为200。

文件修改:
1、Plus/area.asp,实现三级联运的核心文章。
a、创建changeCounty函数:

在39行以后增加:

function changeCounty(selectValue)
{
try{
setCookie(“pid”,selectValue);
}catch(e)
{
}
document.getElementById(‘County’).length = 0;
document.getElementById(‘County’).options[0] = new Option(‘请选择’,”);
for (i=0; i<subcity.length; i++)
{
<%If flag=”getid” then%>
if (subcity[0] == selectValue){document.getElementById(‘County’).options[document.getElementById('County').length] = new Option(subcity[i][1], subcity[i][2]);}
<%else%>
if (subcity[i][0] == selectValue){document.getElementById(‘County’).options[document.getElementById('County').length] = new Option(subcity[i][1], subcity[i][1]);}
<%end if%>
}
}
[/i][/i][/i][/i][/i]

[i][i]b、找到:[/i][/i]

[i][i]document.write (” <select name=’City’ class=’select’ id=’City’ onChange=’changeCounty(this.value)’>”);
document.write (“<option value=” selected>请选择..</option>”);
document.write (“</select>”)
[/i][/i]

[i][i]在其后增加:(增加完上述内容后约86行)[/i][/i]

[i][i]document.write (” <select name=’County’ class=’select’ id=’County’>”);
document.write (“<option value=” selected>请选择..</option>”);
document.write (“</select>”)
[/i][/i]

[i][i]c、在文件末尾增加:[/i][/i]

[i][i]try
{changeCounty(getCookie(“cid”));
}
catch(e)
{}
[/i][/i]

[i][i]2、Admin/KS.Province.asp,实现城市分类到县的添加,修改,删除。[/i][/i]

[i][i]a、在195行末尾增加,fparentid,定义fparentid变量。
b、在205行增加:
GradeID=rs(“GradeID”)-1
fParentid=conn.execute(“select parentid from KS_Province Where ID=” & ParentID)(0)
c、在212行增加:
GradeID=ks.chkclng(ks.s(“GradeID”))
fparentid=conn.execute(“select parentid from KS_Province Where ID=” & ParentID)(0)
e、在236行,<input type=”hidden” name=”ID” value=”<%=id%>”>之后增加:
<input type=”hidden” name=”GradeID” value=”<%=GradeID%>”>
<%If GradeID=1 Or GradeID=0 Then%>
在 261行之后增加:
[/i][/i]

[i][i]<%ElseIf GradeID=2 Then%>
<tr class=”tdbg”>
<td height=”25″ align=”right” class=’clefttitle’>所在城市:</td>
<td> <select name=”parentid” id=”parentid”>
<option value=”<%= fparentid %>”>-作为二级城市-</option>
<%
SQL = “Select ID,City From [KS_Province] Where Parentid=”&fParentid&” order by orderid”
‘Response.Write Sql
Set Rs = Conn.Execute(SQL)
While Not Rs.Eof
if trim(parentid)=trim(rs(0)) then
%>
<option value=”<%= Rs(“ID”) %>” selected><%= Rs(“City”) %></option>
<%
else
%>
<option value=”<%= Rs(“ID”) %>”><%= Rs(“City”) %></option>
<%
end if
Rs.Movenext
Wend
Rs.Close
%>
</select> </td>
</tr>
<%End if%>
在329行后添加:GradeID = KS.ChkClng(KS.S(“GradeID”))
将350行至354行的
[/i][/i]

[i][i]If ID=0 Then
Conn.Execute (“Insert Into [KS_Province] (City,e_City,Parentid,orderid,filtertf) values (‘”&City&”‘,’”&e_City&”‘,”&Parentid&”,”&orderid&”,” & filtertf &”)”)
Else
Conn.Execute (“Update [KS_Province] set City=’” & City & “‘,e_City=’” & E_city & “‘,Parentid=” & ParentID & “,orderid=” & orderid&”,filtertf=” & filtertf &” where id=” & ID)
End If
[/i][/i]

[i][i]修改为:[/i][/i]

[i][i]If ID=0 Then
Conn.Execute (“Insert Into [KS_Province] (City,e_City,Parentid,orderid,filtertf,GradeID) values (‘”&City&”‘,’”&e_City&”‘,”&Parentid&”,”&orderid&”,” & filtertf &”,” & GradeID+1 &”)”)
Else
Conn.Execute (“Update [KS_Province] set City=’” & City & “‘,e_City=’” & E_city & “‘,Parentid=” & ParentID & “,orderid=” & orderid&”,filtertf=” & filtertf &”,GradeID=” & GradeID+1 &” where id=” & ID)
End If
[/i][/i]

[i][i]将358行的
Response.write “<script>if (confirm(‘添加成功,继续添加吗?’)){location.href=’KS.Province.asp?action=add&parentid=” & parentid & “‘;}else{top.frames[""MainFrame""].location.reload();top.closeWindow();}</script>”
修改为:
Response.write “<script>if (confirm(‘添加成功,继续添加吗?’)){location.href=’KS.Province.asp?action=add&GradeID=”&GradeID&”&parentid=” & parentid & “‘;}else{top.frames[""MainFrame""].location.reload();top.closeWindow();}</script>”
[/i][/i]

[i][i]将42行的:function AreaAdd(){ new parent.KesionPopup().PopupCenterIframe(‘新增地区’,'KS.Province.asp?Action=add&parentid=<%=ks.s(“parentid”)%>’,630,200,’no’);}
修改为:
function AreaAdd(){ new parent.KesionPopup().PopupCenterIframe(‘新增地区’,'KS.Province.asp?Action=add&parentid=<%=ks.s(“parentid”)%>&GradeID=<%=ks.s(“GradeID”)%>’,630,200,’no’);}
[/i][/i]

[i][i]搜索“下属地区”这几个字,将链接及上下的IF语句修改为:[/i][/i]

[i][i]<% if rs(“GradeID”)<3 then%>
<a href=”?parentid=<%= ID %>&City=<%= City %>&GradeID=<%= rs(“GradeID”) %>”>下属地区</a>
<% end if%>
[/i][/i]

[i][i]3、Admin/KS.Article.asp,实现添加文章及文章类型模型内容时地区分类三级联动。[/i][/i]

[i][i]首先在25行添加全局变量,末尾增加,County
文件中涉及到保存、读取的内容不再细说,搜索City,有赋值操作的按照City的格式写上County的内容。如165行有City= RS(“City”),就在下面添加County= RS(“County”)
搜索:.write “try{setCookie(“”pid”",’” & province & “‘);}catch(e){}” & vbcrlf,在下面增加: .write “try{setCookie(“”cid”",’” & City & “‘);}catch(e){}” & vbcrlf
往下移三四行,找到:
[/i][/i]

[i][i]if City<>”" Then
.Write “$(‘#City’).val(‘” & City & “‘);”
end if
在下面增加:
if County<>”" Then
.Write “$(‘#County’).val(‘” & County & “‘);”
end if
[/i][/i]

[i][i]4、Admin/KS.EnterPrise.asp,实现企业商家地区三级联动。[/i][/i]

[i][i]首先仍是添加全局变量,在184行后添加:,County
在204行City=rs(“City”) 下面添加:County=rs(“County”)
在418行左右找到
[/i][/i]

[i][i]<%if City<>”" Then%>
$(‘#City’)[0].options[1]=new Option(‘<%=City%>’,'<%=City%>’);
$(‘#City’)[0].options(1).selected=true;
<%end if%>
[/i][/i]

[i][i]在其下面添加:[/i][/i]

[i][i]<%if County<>”" Then%>
$(‘#County’)[0].options[1]=new Option(‘<%=County%>’,'<%=County%>’);
$(‘#County’)[0].options(1).selected=true;
<%end if%>
[/i][/i]

[i][i]在493行Dim City:City=KS.S(“City”)下面添加:Dim County:County=KS.S(“County”)
在564行RS(“City”)=City下面添加:RS(“County”)=County
[/i][/i]

[i][i]5、User/User_EditInfo.asp,会员中心三级联动。[/i][/i]

[i][i]将449行的InputStr=”<script>try{setCookie(“”pid”",’” & rsu(“province”) & “‘);}catch(e){}</script>” & vbcrlf修改为:InputStr=”<script>try{setCookie(“”pid”",’” & rsu(“province”) & “‘);}catch(e){}try{setCookie(“”cid”",’” & rsu(“city”) & “‘);}catch(e){}</script>” & vbcrlf[/i][/i]

[i][i]将450行的InputStr=”<script src=’../plus/area.asp’></script><script language=”"javascript”">” &vbcrlf修改为:InputStr=InputStr&”<script src=’../plus/area.asp’></script><script language=”"javascript”">” &vbcrlf 这个可能是官方的一个小Bug,反正我的好像没有InputStr&的,而不加这个前台不会显示市、县联动。[/i][/i]

[i][i]找到[/i][/i]

[i][i]If RSU(“City”)<>”" And Not ISNull(RSU(“City”)) Then
InputStr=InputStr & “$(‘#City’).val(‘” & RSU(“City”) & “‘);” &Vbcrlf
end if
在其后增加:
[/i][/i]

[i][i]If RSU(“County”)<>”" And Not ISNull(RSU(“County”)) Then
InputStr=InputStr & “$(‘#County’).val(‘” & RSU(“County”) & “‘);” &Vbcrlf
end if
[/i][/i]

[i][i]在1095行:Dim city:city=KS.S(“city”)下面添加:Dim County:County=KS.S(“County”)[/i][/i]

[i][i]在1174行RS(“City”)=City下面添加:RS(“County”)=County[/i][/i]

[i][i]将1217行的Conn.Execute(“Update KS_GQ Set ContactMan=’” & RealName &”‘,Tel=’” &OfficeTel & “‘,Address=’” & Address & “‘,Province=’” & Province & “‘,City=’” & City & “‘,Zip=’” & Zip & “‘,Fax=’” & Fax & “‘,Homepage=’” & HomePage & “‘ where inputer=’” & KSUser.UserName & “‘”)修改为:Conn.Execute(“Update KS_GQ Set ContactMan=’” & RealName &”‘,Tel=’” &OfficeTel & “‘,Address=’” & Address & “‘,Province=’” & Province & “‘,City=’” & City & “‘,County=’” & County & “‘,Zip=’” & Zip & “‘,Fax=’” & Fax & “‘,Homepage=’” & HomePage & “‘ where inputer=’” & KSUser.UserName & “‘”)[/i][/i]

[i][i]至次,修改完毕~~~~有些地方的行数可有不太一样,都是按照顺序修改后的行数,如果嫌太麻烦,可以使用已经修改过的文件包。[/i][/i]

以下内容只有回复后才可以浏览,请先登录!

[i][i]原文:http://www.nywzjs.com/?p=682[/i][/i]

 
青年鸡:www.hyqnj.com www.hntdqy.com www.zhengxinqinye.com
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行5.05859秒 powered by KesionCMS 9.0