PHP里面怎么实现这类型的列表?

旋转360 发布于 2013/07/29 23:45
阅读 714
收藏 1

排版的给我一个这样的列表,我叫排版的改下,人家不愿意,我自己又特不喜欢去做排版,而且也不怎么会,我只要我一改的话那些什么样式也要改一堆,所 以就没想说是去把下面的html变了,只好寻求大虾帮我解决下问题(在不变下面html的情况下,当然你要是说要我改html的话我上面说了,而且我真想 知道大虾是怎么实现的,这个类似的情况我之前遇到过,后来都是找排版的改了,现在这排版的貌似对我感冒了,。。。。)

其实要实现的效果很简单,就是把下面的循环下去,本来我是在套dedecms模板,不过给我说用php怎么做这个也行。最主要的解决思路(简单的写点代码,最好),我自己在那里用了下设置个变量$i(随循环逐次加一),然后根据$i%3和$i%6来判断,结果发现能满足$i%3和$i也可以满足$i%6,所以无从下手了。。。。

大虾别扔砖,看似简单的问题,我折腾了个把小时都没弄出来。。。


<table cellspacing="4" cellpadding="8">
    <tbody>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <!--Begin 在这里怎么循环数据呢-->
    <tr>
      <td><img src="http://www.baidu.com/img/bdlogo.gif" src="" /></td>
      <td><img src="http://www.baidu.com/img/bdlogo.gif" src="" /></td>
      <td><img src="http://www.baidu.com/img/bdlogo.gif" src="" /></td>
    </tr>
    <tr>
      <td>农行营销展柜</td>
      <td>农行大型咨询台</td>
      <td>农行小型咨询台</td>
    </tr>
    <tr>
      <td><img src="http://www.baidu.com/img/bdlogo.gif" src="" /></td>
      <td><img src="http://www.baidu.com/img/bdlogo.gif" src="" /></td>
      <td><img src="http://www.baidu.com/img/bdlogo.gif" src="" /></td>
    </tr>
    <tr>
      <td>农行营销展柜</td>
      <td>农行大型咨询台</td>
      <td>农行小型咨询台</td>
    </tr>
<!--End 在这里怎么循环数据呢-->
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
  </tbody>
</table>
效果就是这个很简单的样子


要是你直接用dedecms的模板帮我的话,我先提供点点有用的代码


{dede:list pagesize='5'}
    [field:array runphp='yes']
    	if(($GLOBALS['autoindex'])%6==0){
            <a href="{@me['arcurl']}" title="{@me['title']}">
               <img src="{@me['litpic']}" alt="{@me['title']}">
            </a>
    	}
    [/field:array]
{/dede:list}
//一点基本调用


加载中
0
王昊然
王昊然

随手写了个,应该还能优化:

<?php
//创建数组
$test_Arr = array();
for($i = 1; $i <= 10; $i++){
  $test_Arr[] = range($i, $i+2);
}

echo '<table cellspacing="4" cellpadding="8"><tbody><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>';

//循环总次数
$count = count($test_Arr);

//循环创建
for($i = 0; $i < $count; $i++){
  echo '<tr>';
  if($i % 3 == 0){
    for($k = 0; $k < 3; $k++){
      if($k + $i >= $count){
	continue;
      }else{
	echo '<td><img src="http://www.baidu.com/img/bdlogo.gif" src="" title="' . $test_Arr[$i + $k][0] . '" /></td>';
      }
    }
  }
  echo '</tr>';
  echo '<tr>';
  if($i % 3 == 0){
    for($kk = 0; $kk < 3; $kk++){
      if($kk + $i >= $count){
	continue;
      }else{
	echo '<td>农行营销展柜' . $test_Arr[$i+$kk][1] . '</td>';
      }
    }
  }
  echo '</tr>';
  if($i % 3 == 0){
    $i = $i + 2;
  }
}

echo '<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr></tbody></table>';
截图:

旋转360
旋转360
嗯,谢谢,我等下研究研究
1
herro
herro
{dede:php} 无敌标签。。在模板上写php
0
旋转360
旋转360
不过dedecms好像这么写有点问题,呵呵
0
梅开源
梅开源

多用几个变量不就ok了

如果$i==3,$j==6如何如何,然后这些变量请0

0
熟悉的陌生人
熟悉的陌生人
何必呢,为什么不用样式控制!
0
wx---每日佳选
wx---每日佳选
用li或者dd之类的。 你会省很多劲。 美工帮你下。很少用table了。
0
旋转360
旋转360

引用来自“梅开源”的答案

多用几个变量不就ok了

如果$i==3,$j==6如何如何,然后这些变量请0

多变量?
0
旋转360
旋转360

引用来自“非良”的答案

用li或者dd之类的。 你会省很多劲。 美工帮你下。很少用table了。
唉,上面说了,美工不原因帮我,我css差得很,自己改又达不到那效果
wx---每日佳选
wx---每日佳选
哈,那只能自力更生了。
0
怪才
怪才

DEDE后台可以直接生成(模板标签向导,好像是这个名字),但是它会输出多余的代码,基本上不影响。


0
旋转360
旋转360

引用来自“怪才”的答案

DEDE后台可以直接生成(模板标签向导,好像是这个名字),但是它会输出多余的代码,基本上不影响。


返回顶部
顶部