2011-09-02 3 views
2

필자는 동적으로 채워진 테이블을 가지고 있는데,이 테이블에서 컬럼의 수를 3으로 제한하여 다음 라인에 다음 td 개의 별을 표시합니다. (http://kbay.in를 참조 페이지 상단의 카테고리 버튼을 선택합니다.)테이블 행당 셀 수를 3으로 제한하는 방법은 무엇입니까?

여기

이다 내가 멋지 PHP를 사용하여 데이터를 가져 오는 방법 :

<table cellpadding="0" cellspacing="4" width="100"; border-collapse="collapse";> 
<tr> 

{foreach from=$array_categories item=v name=cat} 
<td valign="top" width="116px" align="left"> 
{capture name=some_content assign=categ_url} 
{if $v.subcats>0}{$live_site}/{if $seo_settings.enable_mod_rewrite}{$v.id}-{$v.url_title}/1/listings.html{else}listings.php?category={$v.id}{/if}{/if} 
{/capture} 

       <a href="{$categ_url}">{$v.name|escape:"html"}{if $appearance.categ_count_ads} ({$v.ads}) {/if}</a> 


{/foreach}</td></tr> </table> 

를 내가 만들 수있는 방법 불과 3 개 표 셀이되도록 각 행에?

+0

사용 DIV가 더 쉬울 것입니다. – ajreal

+1

@ajreal : 표 형식의 데이터로 보입니까? 각 행 (3 열)은 ''..''에 포함되어야합니다. 그렇지 않다면 암시하는 것처럼 보입니까? – MrWhite

답변

0

루프에서 매번 카운터를 증가시키고 필요한 경우 새 행을 시작하는 루프 내에서 검사를 수행하십시오. 같은 뭔가 :

if ($counter % 3 == 0) { 
    echo '</tr><tr>'; 
} 
+0

또는 – majid

+0

'', 당신은 현재의 행을 종료하고 새 – Crack

+1

@majid 시작하려는 : 이것은 분명있을 수 있습니다,하지만 그렇게 (0 % 3 == 0) 참되다는 것을 주목할 필요가있다 이 상황을 피하거나 처리해야합니다. – MrWhite

1

foreach 루프의 iteration 속성을 사용

... 
{foreach from=$array_categories item=v name=cat} 
{if $smarty.foreach.cat.iteration % 3 == 0 && $smarty.foreach.cat.iteration > 0} 
</tr> 
<tr> 
{/if} 
<td valign="top" width="116px" align="left"> 
... 

$smarty.foreach.cat.iteration

는 Smarty3를 사용하는 경우도 [email protected]를 사용할 수 Smarty2 구문입니다.

관련 문제