我需要做的就是有一个表单来执行此操作:
就是这样!我知道验证等也是可取的,但我现在只需要让它工作。我不介意它是用它编码还是使用Drupal表单API(实际上我更喜欢前者!)。
我知道这很简单,但不幸的是我来自前端背景并且有点了解这类事情:(
干杯!
答案 0 :(得分:4)
使用Form API和a custom module非常简单。您将使用Form API构建一个表单,并添加一个提交处理程序,将表单的重定向更改为您想要的任何内容。最后,您需要创建一种访问表单的方法(通过创建菜单项或创建块)。
这是一个实现您想要的表单的示例:您需要仔细阅读Form API参考,以查看构建表单时的所有选项。它还提供了两种访问表单的方法:
hook_menu()
在http://example.com/test
hook_block()
提供一个块,其中包含您可以在块管理页面上添加和移动的表单。示例代码:
// Form builder. Form ID = function name
function test_form($form_state) {
$form['postcode'] = array(
'#type' => 'textfield',
'#title' => t('Postcode'),
'#size' => 10,
'#required' => TRUE,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Go'),
);
return $form;
}
// Form submit handler. Default handler is formid_submit()
function test_form_submit($form, &$form_state) {
// Redirect the user to http://example.com/test/<Postcode> upon submit
$form_state['redirect'] = 'test/' . check_plain($form_state['values']['postcode']);
}
// Implementation of hook_menu(): used to create a page for the form
function test_menu() {
// Create a menu item for http://example.com/test that displays the form
$items['test'] = array(
'title' => 'Postcode form',
'page callback' => 'drupal_get_form',
'page arguments' => array('test_form'),
'access arguments' => array('access content'),
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
// Implementation of hook_block(): used to create a movable block for the form
function test_block($op = 'list', $delta = 0, $edit = array()) {
switch ($op) {
case 'list': // Show block info on Site Building -> Blocks
$block['postcode']['info'] = t('Postcode form');
break;
case 'view':
switch ($delta) {
case 'postcode':
$block['subject'] = t('Postcode');
$block['content'] = drupal_get_form('test_form');
break;
}
break;
}
return $block;
}
更多信息:
答案 1 :(得分:2)
一旦掌握了Drupal,在Drupal中创建表单就相当容易了。我建议阅读以下链接。 http://drupal.org/node/751826它很好地概述了如何创建表单。
在_submit挂钩中,您可以通过设置$form_state['redirect']
重定向到相应的页面。
这当然是假设你已经掌握了创建自定义模块的想法。如果您需要更多信息,请转到here。
答案 2 :(得分:2)
Drupal Form API - 很简单,它最终需要作为开发人员学习。不妨跳过并通过API进行,因为它不太难,你想要做什么。