[紧急求助]关于制作类似CSDN帖子列表那样,灰白背景循环,我每次到第二页就变色的问题!!??100分求助

Rifhvk 2004-08-04 03:04:29
我现在要修改的是WDB的PHP论坛,其中的wdblist.php,就想实现跟 CSDN帖子列表那样,一条灰色一条白色,这样循环下去,,
WDB原代码:http://www.xscc.com/my/up/doc/804_wdb.rar 370K

WDBLIST.php代码: http://www.xscc.com/my/up/doc/804_wdblist.txt

注释//-------if more than one page----------- 这里开始帖子栏的

我是这样的:

这段:if ($count%$perpage==0) $maxpageno=$count/$perpage;
else $maxpageno=floor($count/$perpage)+1;
if ($page>$maxpageno) $page=$maxpageno;
$pagemin=min( ($page-1)*$perpage , $count-1);
$pagemax=min( $pagemin+$perpage-1, $count-1);
for ($i=$pagemin; $i<=$pagemax; $i++) {
$a_info=$article_list[$i];
article_line();
}

// article_line(); 修改成 article_line($pagemin-$i);

然后在
function article_line() {
..........
函数 传递 function article_line($i)

最后
在帖子<table> 前加条IF语句,
if ($i%2==0) $bgcolor='#ffffff';
else $bgcolor='#eeeeee';

print ("
<table cellspacing=0 cellpadding=0 width=$tablewidth align=center border=1 bordercolor=$bordercolor bgcolor=$bgcolor>
。。。。

这样的确可以实现,但是,,当帖子发到第二页(我设定20贴一页,不管几贴一页都这样)的时候,颜色就变成else $bgcolor='#eeeeee';,,,每贴都这样,只要发到第二页的时候,就变else下的颜色,,~~~

希望代码高手帮忙看一下,,,我PHP不怎么懂,几乎没学过,凭一点点C的感觉去猜测一下的,,,,,,急用啊,, 帮忙,哇~


...全文
121 点赞 收藏 20
写回复
20 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Rifhvk 2004-08-07
ecobin(绿茵汗将)(碌碌無爲)(JSP初學者)
的方法真是不错,,,但是有针对性,有些不能用,,幸亏我这个能用哈,`~谢谢~

回复
TwoMax 2004-08-05
简单问题复杂化。
回复
feixuehenshui 2004-08-05
感觉好复杂啊
在SMARTY在要循环的地方加上一句就行了
<tr align="center" bgcolor="<{cycle values="#FFFFFF,#F6F6F6"}>">
回复
tod204 2004-08-05
严重同意 ecobin(绿茵汗将)(碌碌無爲)(JSP初學者)兄
不过楼上的有一个很大的缺陷,就是this.sectionRowIndex的值对于动态生成的可能有点麻烦.
回复
ecobin 2004-08-05
用CSS就可以了。


<style type="text/css">
.listitem {
background-color:expression((this.sectionRowIndex%2==0)?"#F2F2F2":"#FFFFFF");
height:25px;
}
</style>
<table width="480" border="0" cellpadding="0" cellspacing="0">
<tr class="listitem">
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="listitem">
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="listitem">
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr class="listitem">
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
回复
syhb 2004-08-05
$id //项目序号 1、2、3、4。。。
if($id%2==0)$bgcolor="#eeeee";
else $bgcolor="#fffff";
回复
xuzuning 2004-08-04
请检查这段代码所涉及的变量的值
if ($count%$perpage==0) $maxpageno=$count/$perpage;
else $maxpageno=floor($count/$perpage)+1;
if ($page>$maxpageno) $page=$maxpageno;
$pagemin=min( ($page-1)*$perpage , $count-1);
$pagemax=min( $pagemin+$perpage-1, $count-1);
回复
Rifhvk 2004-08-04
for ($i=$pagemin; $i<=$pagemax; $i++) {
$a_info=$article_list[$i];
article_line($i);

我也试了,,

但结果的确是增,,12345.... 但是两页以上的帖子 还是3,三页以上的帖子全部是4

。。。。。555
回复
Rifhvk 2004-08-04
然后,当第三页时候 值全部为 4 ,我倒~
回复
Rifhvk 2004-08-04
不是不是,,弄错了,,

$i的值是,: 如果没有满2页的,,依照 0 -1 -2 ... 然后满2页的,值全部为3, 所以, %2 是执行else
回复
xuzuning 2004-08-04
会吗?
for ($i=$pagemin; $i<=$pagemax; $i++) {
$a_info=$article_list[$i];
article_line($i);
}
无论$i是多少,$i总是递增的。因为有$i++
回复
Rifhvk 2004-08-04
恩,,

既然值是 0 -1 -2 -3 ....下去,那么 %/2判断应该OK的啊,,但是结果怎么发贴超过2页的就else了不行了~~?????
回复
xuzuning 2004-08-04
哦,手误!

php与c相比,除了变量是弱类型和变量前多一个$外。真的是没有多少区别
回复
Rifhvk 2004-08-04
$i的值是 0 -1 -2 -3 -4 ...这样趋势下去的
回复
Rifhvk 2004-08-04
evho $i;???
是echo吧??
回复
Rifhvk 2004-08-04
能详细点吗,对于不懂PHP的人,偶尽量努力去理解,
回复
xuzuning 2004-08-04
在函数article_line入口处检查
$i的值
function article_line($i) {
evho $i;
...
回复
Rifhvk 2004-08-04
程序就是这样的,,一行一个表格的:) 请帮帮我,,5555偶在线等
回复
xuzuning 2004-08-04
是设置tr的bgcolor
而不是设置table的bgcolor

你总不会是每行一个表格吧?
回复
keaizhong 2004-08-04
这是你程序逻辑上的问题吧。。
看看你程序下一页中如何处理$i的吧。。
回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2004-08-04 03:04
社区公告
暂无公告