我正在尝试使用下拉列表而不是“城市”字段的文本框。(像国家/地区列表一样)。我尝试编辑address-form.tpl
文件。但它包含聪明的值。我不知道哪个.tpl / Controller我想编辑。
地址form.tpl
<section class="form-fields">
{block name='form_fields'}
{foreach from=$formFields item="field"}
{block name='form_field'}
{form_field field=$field}
{/block}
{/foreach}
{/block}
</section>
答案 0 :(得分:0)
最后我得到了一个解决方案
1)将表单类型添加到城市字段
classes/form/CustomerAddressFormatter.php
if ($field === 'city') {
$formField->setType('select');
$formField->setType('citySelect');
$formField->setRequired(true);
$loc=new Location(); //load data from db
$result=$loc->getLocations();
foreach ($result as $value) {
$formField->addAvailableValue(
$value['area'],
$value['area']
);
}
}
2)编辑.tpl文件
themes/yourtheme/templates/_partials/form-fields.tpl
{elseif $field.type === 'citySelect'}
<select
class="form-control form-control-select chosen-select"
name="{$field.name}"
{if $field.required}required{/if}
>
<option value disabled selected>{l s='-- please choose --' d='Shop.Forms.Labels'}</option>
{foreach from=$field.availableValues item="label" key="value"}
<option value="{$value}" {if $value eq $field.value} selected {/if}>{$label}</option>
{/foreach}
</select>