Smarty模板如何基于两个数组设置文本框的值

时间:2013-08-09 12:53:14

标签: php smarty sugarcrm

我需要动态填充一些文本框一个数组包含标签第二个数组包含值,我想用它来填充

Array ( [Enquiry] => Enquiry [Application Sent] => Application Sent [Application Received] => Application Received [Interview Booked] => Interview Booked [Offer Made] => Offer Made [Offer Accepted] => Offer Accepted [Deposit Paid] => Deposit Paid ) 1 

Array ( [0] => 10 [1] => [2] => [3] => [4] => [5] => 5 [6] => ) 1

文本框是基于第一个数组创建的,我需要检查第一个数组中的位置,并使用第二个数组中相应索引的值填充文本框中的值。因此,查询将具有值10并且提供接受的值为5等。

如何在以下智能代码中执行此操作?我以前从未真正使用过smarty。

  <input type="hidden" id="{{if empty($displayParams.idName)}}{{sugarvar key='name'}}{{else}}{{$displayParams.idName}}{{/if}}_multiselect"
name="{{if empty($displayParams.idName)}}{{sugarvar key='name'}}{{else}}{{$displayParams.idName}}{{/if}}_multiselect" value="true">
{multienum_to_array string={{sugarvar key='options' string=true}} default={{sugarvar key='default' string=true}} assign="values"}
{$values|@print_r}
{multienum_to_array string={{sugarvar key='value' string=true}} default={{sugarvar key='default' string=true}} assign="vals"}
{$vals|@print_r} 

{foreach from=$values key=k item=item}

    {if @in_array($k, $vals)}
        {assign var=v value=true}
    {else}
        {assign var=v value=false}
    {/if}

    <input size="2" type="text" id="" name="{{if empty($displayParams.idName)}}{{sugarvar key='name'}}{{else}}{{$displayParams.idName}}{{/if}}[]" value="{ {{sugarvar key='value' string=true}}.$item }" />&#37; &nbsp;<label>{ {{sugarvar key='options' string=true}}.$item }</label><br />

{/foreach}

1 个答案:

答案 0 :(得分:0)

为什么要创建2个数组?我认为创建1个数组如下所示对你来说效果更好

Array ( 
         [Enquiry] => '10' ,
         [Application Sent] => '', 
         [Application Received] => '',
         [Interview Booked] => '', 
         [Offer Made] => '', 
         [Offer Accepted] => '5', 
         [Deposit Paid] => '' 
     ) 

然后按如下方式处理数组: -

如果 $ myArray 包含上述数组

{foreach from=$myArray key=k item=val}
   <li>{$k}: {$val}</li>
{/foreach}

$ k定义键和$ val定义$ myArray数组的值