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.
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.