duan246558 2014-01-07 07:26
浏览 120
已采纳

如何在smarty模板中访问数组的键和值?

I'm assigning an array named $enquiries_labels from php file to a smarty template file. If I print the array in PHP file it's output is as follows:

Array
(
    [0] => New Enquiry
    [1] => Retail Enquiry
    [2] => Feedback
    [3] => Payment Query
    [4] => Package Query
    [5] => Test Query
)

Now after assigning this array to a smarty file I want to access these values in a select HTML control. For it I need to use foreach loop construct of smarty template engine. If a pre-selected value is matching with the key from array then I'll keep that value selected. For achieving this I tried below code, but it didn't work for me. Can anyone help me in this regard please? For your reference I'm putting below the code I tried in smarty template:

<select name="contact_label" id="contact_label"> 
{if $enquiries_labels}
                  {foreach from=$enquiries_labels item=label}
                    <option value="{$label.key}" {if $data.key == $label.key} selected="selected" {/if}>{$label.value}
                    </option>
                  {/foreach}
                {/if}
      </select>

Thanks for spending some of your valuable time in understanding my issue.

  • 写回答

4条回答 默认 最新

  • douhui3760 2014-01-07 07:31
    关注

    Use key in your foreach:

    {foreach from=$enquiries_labels item=label key=key}
              <option value="{$key}" {if $data.key == $key} selected="selected" {/if}>{$label}
              </option>
    {/foreach}
    

    It's all there in the documentation.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?