0

私はこのフォームを持っています:

    $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 で実行できますか?

4

3 に答える 3

1

1) フォームにフィールドを直接追加する場合 (例: $form->addField(....) )

\app\design\adminhtml\default\default\template\widget\form\renderer\element.phtml

29行目あたり:

変化する:

<span class="field-row">

の中へ:

<span class="field-row <?= $_element->getId();?>">

これで、クラスを使用してフォーム行にアクセスできるようになり、必要なことを実現するために CSS をいじることができます。


2) フォーム フィールドセットにフィールドを追加する場合 (例: $fieldset->addField(....) )

  • パラメータ「container_id」を指定します。例:

        $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 を使って簡単に遊んで、必要なものを手に入れることができます。

敬具、ヤヌス

于 2014-07-31T06:04:25.367 に答える
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
        ));

この要素の使用法は、次のファイルで確認できます。

app/design/adminhtml/default/default/template/widget/form/renderer/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; ?>
于 2014-04-10T14:17:07.190 に答える