Я створив форму в адмін.
$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
функції?