我有这样的表格:
$form = new Varien_Data_Form();
$costsForm = $form->addFieldset('costs', array(
'legend' => Mage::helper('starmall_config')->__('Shipping costs')
));
$data = array();
$costsArr = Mage::helper("starmall_config")->getShippingWeightRateList();
for ($i=0; $i < count($costsArr); $i++) {
$data["ship_cost_" . $i . "_from"] = $costsArr[$i]["from"];
$data["ship_cost_" . $i . "_to"] = $costsArr[$i]["to"];
// 1st column
$costsForm->addField("ship_cost_" . $i . "_from", 'text', array(
'name' => "ship_cost_" . $i . "_from",
'label' => $costsArr[$i]["label"],
'class' => 'required-entry',
'style' => 'width:50px',
'required' => true,
));
// 2nd column
// how to add a new field on the same row in another column
// 3rd column
// how to add a new field on the same row in another column
// 4th column
// how to add a new field on the same row in another column
}
看起来像这样:
我想在同一行添加多个输入字段。可以在Magento 1.7中完成吗?
答案 0 :(得分:1)
1)如果您直接向表单添加字段(例如$ form-&gt; addField(....))
\应用\设计\ adminhtml \默认\默认\模板\插件\形式\渲染器\ element.phtml
第29行:
变化:
<span class="field-row">
成:
<span class="field-row <?= $_element->getId();?>">
现在您可以访问带有类的表单行,并且可以使用CSS来实现所需的功能。
2)如果您向表单字段集添加字段(例如$ fieldset-&gt; addField(....))
提供参数&#34; container_id&#34;,例如:
$fieldset->addField('test_field', 'text', array(
'name' => 'test_field',
'label' => $this->__('Test field'),
'required' => false,
'disabled' => false,
'style' => 'width:50px;',
'container_id' => 'some-row-id'
));
渲染后你会看到:
<tr id="some-row-id">
现在,您可以轻松使用CSS来获得所需内容。
亲切的问候, 雅努什
答案 1 :(得分:0)
Hello,因为Magento实际上每个路径存储一个值(请参阅core_config_data表)我能想到的唯一方法是以json或序列化格式保存数据,然后覆盖渲染器以将信息拆分为单独的输入领域。即使是easyer也只是添加一些javascript,自动将json拆分为单独的输入,然后将其组合回提交,以便您不必编辑模型和渲染器。
答案 2 :(得分:0)
尝试使用setNoSpan()方法。 例如:
$checkbox = $this->addField('is_enabled', 'checkbox', array(
'onclick' => 'this.value = this.checked ? 1 : 0;',
'name' => 'is_enabled',
))->setNoSpan(true);
或
$checkbox = $this->addField('is_enabled', 'checkbox', array(
'onclick' => 'this.value = this.checked ? 1 : 0;',
'name' => 'is_enabled',
'no_span' => true
));
您可以在以下文件中看到此元素的用法:
应用程序/设计/ adminhtml /默认/默认/模板/插件/形式/渲染器/ element.phtml
<?php $_element = $this->getElement() ?>
<?php if($_element->getNoSpan() !== true): ?>
<span class="field-row">
<?php endif; ?>
<?php echo $_element->getLabelHtml() ?>
<?php echo $_element->getElementHtml() ?>
<?php if($_element->getNoSpan() !== true): ?>
</span>
<?php endif; ?>