我已经在管理员中创建了一个表单。
$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
函数时看到输入的值吗?