aspcms产品详情页调取相关产品
产品详情页调用相关产品最常见的应用就是装饰公司网站,设计师页面要求调取设计师做过的案例。aspcms本身有这个功能,但不能完全符合要求,看代码
{aspcms:content sort={aspcms:sortid} num=10 order=order}
<a href='[content:link]' >
<img src='[content:pic]' />
</a>
<a href="[content:link]">[content:title len=12]</a>
{/aspcms:content}
这个只能读取指定栏目的相关产品,把每个设计师做设置成栏目很显然不太现实,这种情况下就只能改程序了,本人这里做了个接口,放在根目录api文件夹下
<!--#include file="../inc/AspCms_SettingClass.asp" -->
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<%
Function VbsUnEscape(str)
Dim x
x=InStr(str,"%")
Do While x>0
VbsUnEscape=VbsUnEscape&Mid(str,1,x-1)
If LCase(Mid(str,x+1,1))="u" Then
VbsUnEscape=VbsUnEscape&ChrW(CLng("&H"&Mid(str,x+2,4)))
str=Mid(str,x+6)
Else
VbsUnEscape=VbsUnEscape&Chr(CLng("&H"&Mid(str,x+1,2)))
str=Mid(str,x+3)
End If
x=InStr(str,"%")
Loop
VbsUnEscape=VbsUnEscape&str
End Function
%>
<%
dim desginer,res
desginer = VbsUnEscape(Request.Form("des"))
Function makeList(desginer)
dim rs
set rs =conn.exec("select * from {prefix}Content where ContentStatus=1 and IsRecommend=1 and P_author='"&desginer&"'","r1")
res = "["
do While not rs.eof
res = res & "{"
res = res & """ContentID"":" & rs("ContentID")&","
res = res & """title"":""" & rs("title")&""","
res = res & """IndexImage"":""" & rs("IndexImage")
rs.MoveNext
if not rs.eof then
res = res & """},"
else
res = res & """}"
end if
loop
res = res & "]"
rs.close : set rs=nothing
makeList = res
End Function
%>
<%
response.Write makeList(desginer)
%>
该api接受设计师参数,从数据库中查出符合条件的数据,然后返回,前台通过ajax获取(由于ajax不支持GB2312,遇到中文就乱码,所以发送ajax请求前先对参数进行编码,然后再解码)
var $related = $(".related");//相关产品容器
var desginer = $(".related-title").attr("data-author");//查询参数
console.log(desginer);
$.post("/api/AspCms_Api.asp", {des: escape(desginer)}, function(res) {
var works = JSON.parse(res.slice(res.indexOf("["), res.length));
var templateStr = "<ul class='related-item clearfix'>"
works.forEach(function(item, index) {
templateStr += "<li><a href='/content/?" + item.ContentID + ".html'><img src=" + item.IndexImage + "><span>" + item.title + "</span></a></li>"
});
templateStr += "</ul>"
$related.html(templateStr);
})
前台通过ajax获取数据,并塞入容器
后台也要做一些设置,先到“内容维护”->“内容参数管理”栏目添加参数,这里控件类型选择单选,在备选内容中输入设计师,录入产品的时候记得给案例选择设计师。这里有个问题,如果再次编辑参数,“备选内容”区域是不显示的,因此需要更改/_content/_Spec/AspCms_SpecEdit.asp?action=update&id=5文件

去掉display:none,并对控件类型做个判断,不是所有情况下“备选内容”都要显示的
<script type="text/javascript">
if(<%=SpecControlType%>!==6){
document.getElementById("trSpecOptions").style.display="none";
}
</script>
判断SpecControlType字段,只有在单选的情况下才显示“备选内容”
“备选内容”的值输出由<%=SpecOptions%>改成<%=decode(SpecOptions)%>,新建“内容参数”保存时会进行编码,这里要解码。
最后一步,修改保存函数
Sub EditSpecSave
dim sql,rsObj
SpecField=filterPara(getForm("SpecField","post"))
SpecID=filterPara(getForm("SpecID","post"))
SpecOptions=filterPara(getForm("SpecOptions","post"))
SpecDiversification=filterPara(getForm("SpecDiversification","post"))
SpecControlType=filterPara(getForm("SpecControlType","post"))
SpecName=filterPara(getForm("SpecName","post"))
SpecCategory=filterPara(getForm("SpecCategory","post"))
SpecOrder=filterPara(getForm("SpecOrder","post"))
SpecNotNull=filterPara(getForm("SpecNotNull","post")) SpecOptions = encode(SpecOptions)//对SpecOptions进行编码 if SpecNotNull = "on" then
SpecNotNull = true
else
SpecNotNull = false
end if
sql = "select * from {prefix}SpecSet where SpecID="&SpecID
Set rsObj=conn.Exec(sql,"r1") sql = "update {prefix}SpecSet set SpecName='"&SpecName&"',SpecCategory='"&SpecCategory&"',SpecOptions='"&SpecOptions&"',SpecOrder="&SpecOrder&",SpecNotNull="&SpecNotNull&" where SpecID="&SpecID
//sql语句不再提交SpecControlType,默认会再次提交的,从而导致SpecControlType变成空
conn.Exec sql,"exe"
alertMsgAndGo "修改成功","AspCms_Spec.asp"
End Sub
这样要添加设计师时就可以直接在“内容参数管理”界面添加了
aspcms产品详情页调取相关产品的更多相关文章
- (转)ecshop产品详情页显示不清晰
详情页面的商品图片的设置方法 后台商店设置-显示设置-显示设置(就是这里,商品图片宽度和高度设置的大点就行了,放大镜效果也清晰了) 按照您详情页面图片的实际显示大小来添写. 商品管理-图片批量处理,这 ...
- 使用ajax实现html页面产品详情页文字具体内容
<script type="text/javascript" src="Assets/js/jquery.min.js"></script&g ...
- 《React后台管理系统实战 :四》产品分类管理页:添加产品分类、修改(更新)产品分类
一.静态页面 目录结构 F:\Test\react-demo\admin-client\src\pages\admin\category add-cate-form.jsx index.jsx ind ...
- woocommerce根据标题获取相关产品
我们知道woocommerce的相关文章是根据分类category或标签tag来获取的,能不能实现根据标题来调取相关产品呢?get_posts() 函数可以根据库存.价格.自定义项.搜索条件等不同的标 ...
- Python爬虫:新浪新闻详情页的数据抓取(函数版)
上一篇文章<Python爬虫:抓取新浪新闻数据>详细解说了如何抓取新浪新闻详情页的相关数据,但代码的构建不利于后续扩展,每次抓取新的详情页时都需要重新写一遍,因此,我们需要将其整理成函数, ...
- 解决 ECSHOP v273 产品详情页面评论不显示的问题
问题描述: 最近同事使用ECSHOP v273帮客户开发了一个商城系统,部署到服务器在测试的时候发现产品详情页面里测试的评论不显示,只显示了数量(其实是产品购买的次数) 因为同事搞了好长时间都 ...
- Asp.net MVC 3实例学习之ExtShop(四)——完成产品列表页
在完成产品列表页前要做一些准备功夫.首先是去下载MvcPager用了为产品列表分页.下载的可能是基于MVC 2的,没关系,可以用在MVC 3上.如果有担心,下载源代码重新编译一次好了.下载后将DLL添 ...
- 如何让Android微博个人详情页滚动到顶部
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/103 个人详情页滑动到顶部 最近产品提了个新需求,需要实现 ...
- ecshop 商品详情页显示同类别下的推荐商品
1.打开goods.php文件找到下面代码 $smarty->assign('goods_rank', get_goods_rank($goods_id)); // 商品的销售排名 在上面的代码 ...
随机推荐
- 关于使用strtok的一个小问题
今天在弄一下啊小小程序的时候.报错,出现了问题.先看代码 int main(int argc, char* argv[]) { char *filename = "interface_ips ...
- tokumx的安装和使用
Add the Tokutek package signing key. $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key ...
- 小白学开发(iOS)OC_ block数据类型(2015-08-08)
// // main.m // block数据类型 // // Created by admin on 15/8/12. // Copyright (c) 2015年 admin. All r ...
- MFC中对话框的各种消息触发时间
小结:WM_CREATE是所有窗口都能响应的消息,表明本窗口已经创建完毕.可以安全的使用这个窗口了,例如在它上面画控件等等.这个状态肯定是在调用ShowWindows()显示窗口之前.WM_WM_IN ...
- MFC 任务托盘经常消失问题
经常发现自己写的程序任务托盘会无缘无故的消失,但是进程还是存在的,原来是资源管理器异常的时候,重新生成的时候,程序需要重新添加下任务托盘. 当explorer进程重启,taskbar将会被创建,tas ...
- log4j.properties配置与加载应用
log4j.properties总结: 一.介绍 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务 器 ...
- VPS 的 CentOS6 升级 Python 的方法
VPS 的 CentOS6 升级 Python 的方法 centos默认安装python2.6.由于python和centos关联紧密,所以不建议卸载,进行编译升级 1.新开的VPS务必系统更新 yu ...
- elasticsearch节点间通信的基础transport
在前一篇中我们分析了cluster的一些元素.接下来的章节会对cluster的运作机制做详细分析.本节先分析一些transport,它是cluster间通信的基础.它有两种实现,一种是基于netty实 ...
- QQ群功能设计与心理学
刚刚在一个Java技术交流群,发了个 "博客投票"的广告. 群主两眼一黑,瞬间就把我给干掉了. 看到QQ给出的系统消息,发现QQ群的一个功能做得很不错. 大家注意到,右边有个&qu ...
- 如何去掉bootstrap table中表格样式中横线竖线
修改之前,表格看上去比较拥挤,因为bootstrap table插件中自带斑马线表格样式,有横线和竖线分栏,现在我们不需要这些. 应UI设计的要求,要去掉中间的横线和竖线,使用了修改需求中一种简单粗暴 ...