Я створив форму в адмін.
$form['things'] = array(
'#prefix' => '<div id="things">',
'#suffix' => '</div>',
'#tree' => TRUE,
'#theme' => 'table',
'#header' => array(t('Field Label'), t('Field Name'), t('Location'), t('Stuff')),
'#rows' => array(),
);
Потім я додаю до нього кожен рядок, як:
foreach ($type_fields as $field_name => $attrs) {
$stuff = array(
'#type' => 'textfield',
'#default_value' => $attrs['stuff'],
);
$form['things']['#rows'][] = array(
array('data' => 'label'),
array('data' => $field_name),
array('data' => $field_name),
array('data' => $stuff),
);
}
Форма виглядає чудово! Але перша проблема полягає в тому, що значення, яке присвоюється #default_value, не відображається у формі. Коли я зміню його на #valueправильне значення, НЕ відображається. Тож мені цікаво, як це робити? У документації щодо Drupal сказано, що #valueне слід використовувати форми, хоча вона функціонує саме так, як я б очікував, що вона буде функціонувати.
Основна проблема полягає в тому, коли я заповнюю деякі тестові дані в одному з текстових полів і подаю їх: я не бачу жодного із поданих значень у своїй _submitфункції.
Ні, $formні $form_stateмістить жодне зі значень, що вводяться в текстові поля.
Цікаво, чи це тому, що я рендерую #theme => "table"? Хто-небудь стикався з цим питанням? Будь-які ідеї щодо змін, які я можу внести, дозволяють мені бачити значення, які я ввожу, коли я розміщую форму у _submitфункції?