Умный доступ к массиву - PullRequest
       0

Умный доступ к массиву

0 голосов
/ 22 сентября 2011
{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}

вот мои умные коды.

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

Я пытался получить доступ к значению, но результат недействителен, я попробовал несколько форм, как указано выше.но у него все еще есть проблема.

1 Ответ

0 голосов
/ 22 сентября 2011

Ваш вопрос не ясен, но я думаю, что вижу, что вы пытаетесь сделать. Я не знаю, какую версию 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}
...