获取php Drupal Form中的选项值

时间:2011-03-08 08:47:31

标签: php drupal select drupal-fapi

更新

我使用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 '),
   )
);

3 个答案:

答案 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']