【发布时间】:2015-12-15 10:01:32
【问题描述】:
我想创建一个包含 2 种使用 URL 参数的不同表单的页面。 单独完成时,此任务的每个部分都可以轻松解决。我可以在表单上使用 URL 参数,使用 drupal_get_form 作为回调:
function mymodule_menu() {
$items['user/%/blah'] = array(
'title' => 'Blah',
'page callback' => 'drupal_get_form',
'page arguments' => array('my_custom_callback', 1),
'access arguments' => TRUE,
);
}
function my_custom_callback($form, &$form_state, $uid) {
// I can use candidateId here now
}
还有什么可以做的是,用两种形式创建一个自定义页面回调(不完全确定这是否可行)
function mymodule_menu() {
$items['user/%/blah'] = array(
'title' => 'Blah',
'page callback' => 'my_page_callback',
'page arguments' => array(1),
'access arguments' => TRUE,
);
}
function my_page_callback($uid) {
$build = array();
global $user;
//PROBLEM: I can't pass the URL parameters to the separate
//form callbacks
$build['form1'] = drupal_get_form('form1_callback');
$build['form2'] = drupal_get_form('form2_callback');
return $build;
}
如评论中所述,我无法将 URL 参数传递给单独的表单回调 - 他们在我的模块中需要这个参数。准确地说:我需要 2 个表单在一个页面上(因为我需要 2 个不同的提交按钮用作默认按钮),每个都传递一个 URL 参数。
TL;DR:
基本上,我需要一个包含 2 个文本输入字段的表单页面,并且每个字段都应该有一个单独的提交按钮 - 但 两者都应该是其字段上的默认按钮,因此可以轻松无需鼠标即可使用,只需填写输入字段并按 Enter。 应该触发字段对应的按钮。
我不关心我需要 1 个还是 2 个表单,我只需要两个表单上的 URL 参数。
没有帮助的解决方案:
...以及我找到的其他人。
提前致谢。
【问题讨论】: