以php Drupal形式获取选项的值 更新

以php Drupal形式获取选项的值 更新,php,drupal,select,drupal-fapi,Php,Drupal,Select,Drupal Fapi,我用表单API制作了一个Drupal表单。我使用了元素select,我的问题是如何获得用户选择的值? 例如:下面的代码。我如何知道用户为“标题加摘要”(摘要)选择了什么。谢谢 您需要为表单创建表单提交处理程序。您可以通过创建一个名为FORMNAME\u submit的函数来实现这一点: function my_form_submit(&$form, &$form_state) { $form_state['values']['field_name'] == 'title';

我用表单API制作了一个Drupal表单。我使用了元素select,我的问题是如何获得用户选择的值? 例如:下面的代码。我如何知道用户为“标题加摘要”(摘要)选择了什么。谢谢


您需要为表单创建表单提交处理程序。您可以通过创建一个名为
FORMNAME\u 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是一个数组,它包含许多关于表单状态的信息,并且还包含所有提交的值。默认情况下,它们位于由表单元素的字段名键入的平面列表中。Submit handles是处理用户提交的数据的典型方式,如将其保存到数据库等。表单还有一个validate,它将在Submit handler之前调用。使用表单API,如果用户输入未验证,则可能会创建表单错误。当使用API创建错误时,在验证步骤中,将不会调用submit函数。这意味着您将知道,当调用submit函数时,数据是无错误的

更新:

如果要查看显示给用户的值,可以通过访问validate/submit处理程序中提供的表单数组来访问该值。我已经在上面的示例中展示了这一点。

假设您将这些选项放置在选择列表中

$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']

正确的属性“#options”必须在“”中

它不应构成_submit。如果我选择第一年的工业工程课程,我只能拿到第一年,我选择第三年的工业工程课程,我应该拿到第三年表单['my_select']['element']=数组(…);谢谢你的评论!奇怪,我不能进入阵列$表格[‘规划详情》[‘研究小组][‘价值’];还将$form_state['planning_detail']['study_group']['#value']赋予'null';你知道为什么吗?谢谢我无法访问阵列$表格[‘规划详情》[‘研究小组][‘价值’];还将$form_state['planning_detail']['study_group']['#value']赋予'null';你知道为什么吗?
$form['my_select']['#value']
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);
}