2011-09-22 42 views
-1
{foreach from=$ncache.recmd name=spon key=k item=v} 
     {if ($smarty.foreach.spon.iteration%2) eq 0 || $smarty.foreach.spon.last} 
     <tr> 
      <td> 
      <label> 
       <input type="checkbox" name="iid[]" value="{$ncache.recmd[$k].item_id}"class="checkbox"/{$ncache.recmd[$k].model}{$ncache.recmd[$k].manufacturer} 
      </label> 
      </td> 
      <td> 
      <label> 
       <input type="checkbox" name="iid[]" value="{$ncache.recmd[($k+1)].item_id}" class="checkbox"/>{$ncache.recmd[($k+1)].model}{$ncache.recmd[($k+1)].manufacturer} 
      </label> 
      </td> 
     </tr> 
    {/if} 
    {/foreach} 

這是我的smarty代碼。Smarty accesing array

{$ncache.recmd[($k+1)].item_id} 
{$ncache.recmd[$k+1].item_id} 
{$ncache.recmd[$k++].item_id} 

我試圖訪問值 但結果是無效的 我試圖如上幾個形式。但它仍然有問題。

回答

0

你的問題不清楚,但我想我明白你在做什麼。我不知道你使用的是什麼版本的Smarty,但我與Smarty v2有類似的困難。我發現$ smarty.foreach..iteration將成爲下一個索引(基於1的索引而不是基於0的索引)。在這種情況下,試試這個:

{foreach from=$ncache.recmd name=spon key=k item=v} 
{if ($smarty.foreach.spon.index % 2) eq 0 || $smarty.foreach.spon.last} 
<tr> 
    <td> 
     <label> 
      <input type="checkbox" name="iid[]" value="{$ncache.recmd[$k].item_id}"class="checkbox"/{$ncache.recmd[$k].model}{$ncache.recmd[$k].manufacturer} 
     </label> 
    </td> 
    <td> 
     <label> 
      <input type="checkbox" name="iid[]" value="{$ncache.recmd[$smarty.foreach.spon.iteration].item_id}" class="checkbox"/>{$ncache.recmd[$smarty.foreach.spon.iteration].model}{$ncache.recmd[$smarty.foreach.spon.iteration].manufacturer} 
     </label> 
    </td> 
</tr> 
{/if} 
{/foreach}