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 ответа:
$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
Я также приложил код или вы можете перейти по ссылке ниже для получения дополнительной помощи
http://pastebin.com/hKMmryE9Magento, 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') ));
Немного улучшено и проверено:
$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 ));
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 ));