Smarty 访问数组

发布于 2024-12-06 10:02:03 字数 946 浏览 1 评论 0原文

{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}

我试图获取价值 但结果无效 我尝试了上面的几种形式。但仍然有问题。

{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}

here is my smarty codes.

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

i tried to access to value
but result is invalid
i tried several form as above. but it still got problem.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一指流沙 2024-12-13 10:02:03

你的问题不清楚,但我想我明白你想做什么。我不知道你使用的是哪个版本的 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}

Your question isn't clear, but I think I see what you are trying to do. I don't know what version of Smarty you're using, but I had similar difficulty with Smarty v2. I found that $smarty.foreach..iteration was going to be the next index (1-based indexing instead of 0-based). In that case, try this:

{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}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文