Magento,在管理编辑表单上填充复选框字段

时间:2012-06-08 21:04:54

标签: magento

我有一个表单页面,我正在使用

$form->addField('name', 'checkboxes', array('label' => 'check', 'name' => 'name[]',
    'values' => array(
        array('value'=>'1', 'label'=>'1'),
        array('value'=>'2', 'label'=>'2'),
        array('value'=>'3', 'label'=>'3'),
        array('value'=>'4', 'label'=>'4'),
        array('value'=>'5', 'label'=>'5'),
    )
));

创建一个复选框列表。

问题是我无法弄清楚如何在编辑时让它们填充。谁能告诉我怎么做?

我使用复选框类型,因此它们显示为列表而不是表单中的单独行。如果有办法将它们创建为单独的字段,但我想知道如何。

4 个答案:

答案 0 :(得分:9)

$form->addField('name', 'checkboxes', array('label' => 'check', 'name' => 'name[]',
    'values' => array(
        array('value'=>'1', 'label'=>'1'),
        array('value'=>'2', 'label'=>'2'),
        array('value'=>'3', 'label'=>'3'),
        array('value'=>'4', 'label'=>'4'),
        array('value'=>'5', 'label'=>'5'),
    ),
    'value' => array('1', '5'),
    // or 
    // 'checked' => array('1', '5')
));

然后将检查值为“1”和“5”的复选框。有关更多详细信息,请查看lib / Varien / Data / Form / Element / Checkboxes.php

答案 1 :(得分:0)

我还附上了代码,您也可以点击以下链接获取更多帮助     http://pastebin.com/hKMmryE9

Magento, populating checkboxes fields on an admin edit form
$form->addField('name', 'checkboxes', array('label' => 'check', 'name' => 'name[]',
    'values' => array(
        array('value'=>'1', 'label'=>'1'),
        array('value'=>'2', 'label'=>'2'),
        array('value'=>'3', 'label'=>'3'),
        array('value'=>'4', 'label'=>'4'),
        array('value'=>'5', 'label'=>'5'),
    )
));

$form->addField('name', 'checkboxes', array('label' => 'check', 'name' => 'name[]',
    'values' => array(
        array('value'=>'1', 'label'=>'1'),
        array('value'=>'2', 'label'=>'2'),
        array('value'=>'3', 'label'=>'3'),
        array('value'=>'4', 'label'=>'4'),
        array('value'=>'5', 'label'=>'5'),
    ),
    'value' => array('1', '5'),
    // or
    // 'checked' => array('1', '5')
));

答案 2 :(得分:0)

略有改进和验证:

$fieldset->addField('payment_methods', 'checkboxes', array('label' => 'Payment Methods', 'name' => 'payment_methods[]',
'values' => array(
    array('value'=>'1', 'label'=>'Cash'),
    array('value'=>'2', 'label'=>'Paypal'),
    array('value'=>'3', 'label'=>'Authorize.Net'),
    array('value'=>'4', 'label'=>'Square'),
),
        'required' => true,
        'checked' => array('1','4'),
        'disabled' => array('1'), ////if you want
));

答案 3 :(得分:0)

Create $array like below
Array
(
    [0] => Array
        (
            [value] => 1
            [label] => Value 1
        )
    [1] => Array
        (
            [value] => 2
            [label] => Value 2
        )
    [2] => Array
        (
            [value] => 3
            [label] => Value 3
        )
    [3] => Array
        (
            [value] => 4
            [label] => Value 4
        )
    [4] => Array
        (
            [value] => 5
            [label] => Value 5
        )
)
$fieldset->addField('checkboxes', 'checkboxes', array(


 'label'     => 'Select Value',
                          'name'      => 'checkboxes[]',
                          'values' => $array,
                          'onclick' => "",
                          'onchange' => "",
                          'disabled' => false,
                          'after_element_html' => '',
                          'tabindex' => 1
                        ));