小弟初学asp遇到疑难问题,求各位大哥指导,小弟都结贴

caoacaoca 2008-11-22 10:13:10
新到网络公司上班,做了个企业网站的产品页那里不知道怎么弄了,大哥们指点:

问题:点左边导航连接,右边产品不会跟随变化。。

产品展示页代码:

<div class="top"> </div>
<!--#include file="leftnav.asp"-->
<div class="bottom"> </div>
</div><!--左边导航层完结-->

<div id="col_right"><!--右边详细内容层-->
<div class="feature">
<img src="ADIMAGE/masthead_services.zh.jpg">
</div>
<h1>产品展示厅</h1>
<div class="copy">
<%
id=trim(request.QueryString("cpid"))
if cpid="" or isnumeric(cpid) then
cpid=0
end if
set rs=server.CreateObject("adodb.recordset")
select case cpid
case "0"
sql="select * from cpzs order by id desc"
case else
sql="select * from cpzs where id="&cpid&" and classname='"&classname&"' order by id desc"
end select
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.Write("暂时没有相关产品信息")
else
rs.pagesize=12 '定义一页显示的记录数目
tatalrecord=rs.recordcount '获取记录总数目
tatalpages=rs.pagecount '获取分页的数目
rs.movefirst
nowpage=request("page") '用request获取当前页数,注意page是自己定义的变量并非函数
if nowpage&"x"="x" then '处理页码为空时的情况
nowpage=1
else
nowpage=cint(nowpage) '将页码转换成数字型
end if
rs.absolutepage=nowpage '将指针移动到当前显示页的第一条记录
%>
<%
n=1
while not rs.eof and n<=rs.pagesize
%>
<div class="pimg"><a href="cpinfo.asp?id=<%=rs("id")%>"><img src="admin/<%=rs("xiaotu")%>" /></a><br /><br /><%=rs("title")%></div>
<%
rs.movenext '显示页面的数据
wend
%>
</div>
<div class="fy">

<table height="19" border="0" align="center" cellpadding="0" cellspacing="0">
<tr bgcolor="#99CC33">
<td width="17%" height="18" align="center"><strong>共:<%=tatalpages%>页 当前为:<%=nowpage%>页
<%if nowpage>1 then%>
<a href="cpzs.asp?page=<%=nowpage-1%>">上一页</a>
<%else%>
上一页
<%end if%>
<%for k=1 to tatalpages%>
<%if k<>nowpage then %>
<a href="cpzs.asp?page=<%=k%>"><%=k%></a>
<%else%>
<%=k%>
<%end if%>
<%next%>
<%if nowpage < tatalpages then%>
<a href="cpzs.asp?page=<%=nowpage+1%>">下一页</a>
<%else%>
下一页
<%end if%><!--加上页码连接-->
<%if nowpage<>1 then%>
<a href="cpzs.asp?page=<%=1%>"> 首页</a>
<%else%>
首页
<%end if%>
<%if nowpage<>tatalpages then %>
<a href="cpzs.asp?page=<%=tatalpages%>">末页</a>
<%else%>
末页
<%end if%>
<%end if%>
</strong></td>
<tr>
</table>
</div>


左边导航代码:页面名字leftnav.asp

代码:
<!--#include file="include/leftmenu.asp"-->
<ul>
<li><%call pro_class()%></li>
</ul>


leftmenu.asp页面代码:

<%
sub pro_class()
%>
<%
set rs=server.CreateObject("adodb.recordset")
sql="select * from wu_newsclass"
rs.open sql,conn,1,1
if rs.eof and rs.bof then
%>
<ul>
<li>暂时没有产品分类</li>
</ul>
<%
else
do while not rs.eof
%>
<ul>
<li><a href="cpzs.asp?cpid=<%=rs("id")%>"><%=rs("classname")%></a></li>
</ul>
<%
rs.movenext
loop
end if
rs.close
set rs=nothing
%>
<%end sub%>
...全文
297 57 打赏 收藏 转发到动态 举报
写回复
用AI写文章
57 条回复
切换为时间正序
请发表友善的回复…
发表回复
dgboby 2008-11-26
  • 打赏
  • 举报
回复
让它自己好好整理一个头绪,光查书没有用的,头绪没有,一份空.


好好想想.一点点调试.
dgboby 2008-11-26
  • 打赏
  • 举报
回复


id=trim(request.QueryString("cpid"))
'改为
id=request("cpid")'原因你传值没有URL.ENCODE(),就不要用,request.querystring.
if cpid="" or isnumeric(cpid) then
cpid=0
end if
'改为
if Not Isnumeric(id) or id="" then
curpage=1
else
id=cint(id)
end if
'为什么你还用CPID,不是传给ID了,


set rs=server.CreateObject("adodb.recordset")
select case cpid
case "0"
sql="select * from cpzs order by id desc"
case else
sql="select * from cpzs where id="&cpid&" and classname='"&classname&"' order by id desc"
end select
'改为
sql="select * from cpzs where 1=1"
if id<>0 and classname<>"" then
sql=sql&" and id="&id&" classname='"&classname&"' and " '你的classname的值在哪里呀,你怎么传变量过来,自己看一下.我想你后面的代码还有问题.
end if
sql=sql&" order by id desc"

rs.open sql,conn,1,1

caoacaoca 2008-11-26
  • 打赏
  • 举报
回复
帮偶啊,今天一定要完成了,我查了很多书了,都没说详细~
caoacaoca 2008-11-26
  • 打赏
  • 举报
回复
汗。。大哥们详细指导下,
caoacaoca 2008-11-26
  • 打赏
  • 举报
回复
解决了~原来是我传递参数的时候弄错了~谢各位大哥了~结贴,走人~
caoacaoca 2008-11-25
  • 打赏
  • 举报
回复
汗,真是失误,不好意思啊,各位大哥,我的产品类别和产品信息不在一个表的~晕倒~我说怎么没反映,也就是说,在产品表里面没有类别的~而我在产品展示页里查询的全部都是产品信息表~没有产品目录表,我要怎么样才能让产品类别表和产品信息表合在一起呢?
情绝书生 2008-11-25
  • 打赏
  • 举报
回复
id=trim(request.QueryString("cpid")) '这里用id这个变量接收过来的cpid这个参数。
if id="" or isnumeric(id) then '这里应该用id来判断是否为数字isnumeric(id)。
' id=0
' end if

' select case id '错误在这里开始,应该是case id。
' case "0"
sql="select * from cpzs order by id desc"
else
sql="select * from cpzs where id="&id&" and classname='"&classname&"' order by id desc" '这个语句里的变量也是应该用id而不是用cpid.
' end select
end if
set rs=server.CreateObject("adodb.recordset")
rs.open sql,conn,1,1
---------------------------------------------------------------------

response.write SQL '输出SQL条件看看
情绝书生 2008-11-25
  • 打赏
  • 举报
回复
if id="" or isnumeric(id) then
点击后右边产品不变?那就是你这个条件一直是符合的,你把ID写出来看看是不是空值
caoacaoca 2008-11-25
  • 打赏
  • 举报
回复
这是我按照大哥所说的改成的,应该没错的~


<%
id=trim(request.QueryString("cpid")) '这里用id这个变量接收过来的cpid这个参数。
if id="" or isnumeric(id) then '这里应该用id来判断是否为数字isnumeric(id)。
' id=0
' end if

' select case id '错误在这里开始,应该是case id。
' case "0"
sql="select * from cpzs order by id desc"
else
sql="select * from cpzs where id="&id&" and classname='"&classname&"' order by id desc" '这个语句里的变量也是应该用id而不是用cpid.
' end select
end if
set rs=server.CreateObject("adodb.recordset")
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.Write("暂时没有相关产品信息")
else
rs.pagesize=12 '定义一页显示的记录数目
tatalrecord=rs.recordcount '获取记录总数目
tatalpages=rs.pagecount '获取分页的数目
rs.movefirst
nowpage=request("page") '用request获取当前页数,注意page是自己定义的变量并非函数
if nowpage&"x"="x" then '处理页码为空时的情况
nowpage=1
else
nowpage=cint(nowpage) '将页码转换成数字型
end if
rs.absolutepage=nowpage '将指针移动到当前显示页的第一条记录
%>
<%
n=1
while not rs.eof and n<=rs.pagesize
%>
<div class="pimg"><a href="cpinfo.asp?id=<%=rs("id")%>"><img src="admin/<%=rs("xiaotu")%>" /></a><br /><br /><%=rs("title")%></div>
<%
rs.movenext '显示页面的数据
wend
%>
caoacaoca 2008-11-25
  • 打赏
  • 举报
回复
大哥,还是没用。。汗的
情绝书生 2008-11-25
  • 打赏
  • 举报
回复
ID=request.QueryString("cpid") '这里用id这个变量接收过来的cpid这个参数。

if ID = "" or isnull(ID) then
SQL="select * from cpzs order by id desc"
else
SQL="select * from cpzs where id="&ID&" and classname='"&classname&"' order by id desc"
end if

set Rs=server.CreateObject("adodb.recordset")
Rs.Open SQL,Conn,1,1
caoacaoca 2008-11-25
  • 打赏
  • 举报
回复
已经按照楼上大哥的方法修改了,但是还是不不会变换~右边还是同样的内容~
sayfree 2008-11-25
  • 打赏
  • 举报
回复
id=trim(request.QueryString("cpid")) '这里用id这个变量接收过来的cpid这个参数。
if cpid="" or isnumeric(cpid) then '这里应该用id来判断是否为数字isnumeric(id)。
cpid=0
end if
set rs=server.CreateObject("adodb.recordset")
select case cpid '错误在这里开始,应该是case id。
case "0"
sql="select * from cpzs order by id desc"
case else
sql="select * from cpzs where id="&cpid&" and classname='"&classname&"' order by id desc" '这个语句里的变量也是应该用id而不是用cpid.
end select


sayfree 2008-11-25
  • 打赏
  • 举报
回复
没仔细的看,但是也是看出一点问题,你定义了一个id接收传递过来的cpid,但是在调用记录集的时候,却用的cpid这个名字,cpid这个变量应该是没有值的,因为你没有定义。


id=trim(request.QueryString("cpid")) '这里用id这个变量接收过来的cpid这个参数。
if cpid="" or isnumeric(cpid) then '这里应该用id来判断是否为数字isnumeric(id)。
cpid=0
end if
set rs=server.CreateObject("adodb.recordset")
select case cpid '错误在这里开始,应该是case id。
case "0"
sql="select * from cpzs order by id desc"
case else
sql="select * from cpzs where id="&cpid&" and classname='"&classname&"' order by id desc" '这个语句里的变量也是应该用id而不是用cpid.
end select


小布 2008-11-25
  • 打赏
  • 举报
回复
把分给我!我是来打劫的 :)
caoacaoca 2008-11-25
  • 打赏
  • 举报
回复
谁传授一下撒~!
情绝书生 2008-11-25
  • 打赏
  • 举报
回复
产品类型表的ID作为主键

产品信息表里设产品ID为主键
caoacaoca 2008-11-25
  • 打赏
  • 举报
回复
楼上大哥,你的意思是用产品类型表的ID作为主键对不?就是产品信息表里也设产品类型表的ID为主键对不?
情绝书生 2008-11-25
  • 打赏
  • 举报
回复
建立两个表

一个产品类型表
一个产品信息表

产品类型表如:
ID 产品类型.....

产品信息表如:
产品类型ID 产品类型 产品ID 产品名称.....
sayfree 2008-11-25
  • 打赏
  • 举报
回复
在产品表里必须设置一个字段为为产品的所属类别。。如果产品有二级分类的话,还需要设置所属二级类别的字段。
加载更多回复(37)

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧