【发布时间】:2013-07-29 16:03:13
【问题描述】:
我正在使用 Drupal 7 并有一个自定义模块,我在其中创建了一个菜单项,该菜单项将显示 Drupal 表单。代码设置如下:
$items['job-seekers/update-resume/%'] = array(
'title' => 'Update Resume',
'page callback' => 'drupal_get_form',
'page arguments' => 'oa_onboard_update_resume_form',
'access arguments' => array('access content'),
'page arguments' => array(2),
);
所以我的菜单项将显示一个表单,但我需要将 URL 中传递的参数存储在一个隐藏的表单字段中,该字段最终将传递给表单提交方法进行处理。我的表单代码如下所示:
/**
* Form callback for updating resume
*/
function oa_onboard_update_resume_form($form_state) {
$form['resume_file'] = array(
'#type' => 'file',
'#title' => t('Resume Upload'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
return $form;
}
所以这是一个非常简单的表单,只是一个文件上传字段,但是我不知道如何访问在 URL 中传递的 ID。最初我在想我需要像这样的表单方法来解释它:
function oa_onboard_update_resume_form($candidateId) {
但是当我尝试这样做时出现错误:
Notice: Undefined index: 20249278 in drupal_retrieve_form() (line 763 of C:\xampp\htdocs\mysite\includes\form.inc).
Warning: call_user_func_array() expects parameter 1 to be a valid callback, function '20249278' not found or invalid function name in drupal_retrieve_form() (line 798 of C:\xampp\htdocs\mysite\includes\form.inc).
我想我可能会以错误的方式解决这个问题。底线是我只需要创建一个 URL,我可以将一个 ID 传递给它将显示一个表单并将该 ID 与文件上传一起传递给提交方法。
提前致谢。
编辑 这是根据以下建议修复菜单项后呈现表单的新回调函数:
function oa_onboard_update_resume_form($candidateId) {
$form['candidateId'] = array(
'#type' => 'hidden',
'#value' => $candidateId,
);
$form['resume_file'] = array(
'#type' => 'file',
'#title' => t('Resume Upload'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
return $form;
}
【问题讨论】: