スマートアレイの値に基づいてチェックボックスをチェックしようとしています。Smartyがarray_searchを使用して選択したチェックボックスをチェックします
私のPHPで$smarty->assign('locations_array',array(4,6,9,7));
私は配列を通って、チェックボックスをチェックし、一致があるかどうか検索します。 これは私のテンプレートで試したことですが、私は仕事にそれを得ることができません。私はどのように渡すことができますarray_search針と干し草それは必要ですか?
{foreach $locations as $x}
{if $x.id == $x.id|@array_search:$locations_array}
<label><input checked type="checkbox" name="locations[]" value="{$x.id}"/>{$x.title}</label>
{else}
<label><input type="checkbox" name="locations[]" value="{$x.id}" />{$x.title</label>
{/if}
{/foreach}
これはカスタム機能を作成しないと可能でしょうか?
私は{$のx.idがあれば| array_search:$のlocations_array}それがで動作するようになったと思う事が配列され、その後、配列が機能した後pasedされている場合 – andrew
@にのみ使用されます。代わりの :問題は、最後のボックスはlocations_array – andrew
アンドリューのidの一致場所のidを持つにもかかわらず、チェックされていることである{$ x.id場合| array_search:$のlocations_array}、 は常に使用しました:{ if $ x.id | array_search:$ locations_array!== false} $ x.idが配列のキー0に含まれている場合、このif-testは必要ないときに失敗します。ここでの警告を参照してください:http://php.net/manual/en/function.array-search.php –