以php Drupal形式获取选项的值 更新
我用表单API制作了一个Drupal表单。我使用了元素select,我的问题是如何获得用户选择的值? 例如:下面的代码。我如何知道用户为“标题加摘要”(摘要)选择了什么。谢谢以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';
您需要为表单创建表单提交处理程序。您可以通过创建一个名为
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);
}