我使用Form API制作了一个Drupal表单。我使用了元素选择,我的问题是如何获得用户选择的值? 例如:以下代码。我怎么知道用户选择的标题和标题加上预告片' (传情)。谢谢!
form ['planning_detail']['study_groep'] = array (
'# type =' select ',
'# title' = 'Pick a value',
'# options' => array (
'title' => t ('Titles only '),
'teaser' => t ('Titles plus teaser'),
'full text' => t ('Full text '),
)
);
答案 0 :(得分:1)
您需要为表单创建表单提交处理程序。您可以通过创建名为FORMNAME_submit
:
function my_form_submit(&$form, &$form_state) {
$form_state['values']['field_name'] == 'title'; // TRUE
$form['field_name'][#options][$form_state['values']['field_name']] == t('Titles only '); // TRUE
}
form_state是一个数组,其中包含有关表单状态的大量信息,并且还包含已提交的所有值。它们默认位于由表单元素的字段名称键入的平面列表中。提交句柄是您典型处理用户提交的数据的地方,例如将其保存到数据库等。表单还有一个将在提交处理程序之前调用的验证。使用表单API,如果用户输入未验证,则可能会创建表单错误。使用API创建错误时,在验证步骤中,不会调用提交函数。这意味着您将知道调用submit函数时,数据没有错误。
<强>更新强>
如果要为用户显示值,可以通过访问validate / submit处理程序中提供的表单数组来访问它。我在上面的例子中已经证明了这一点。
答案 1 :(得分:1)
function my_form_submit(&$form, &$form_state) {
$field_key = $form_state['values']['field_name']
$value = $form['field_name']['#options'][$field_key];
drupal_set_message($value);
}
正确的属性'#options'必须在''
中答案 2 :(得分:0)
假设您将这些选项放入选择列表
$form['my_select'] = array(
'#type = 'select',
'#title' = 'Pick a value',
'#options' => array(
'title' => t('Titles only'),
'teaser' => t('Titles plus teaser'),
'fulltext' => t('Full text'),
)
);
您可以像这样访问
$form['my_select']['#value']