我正在围绕 Drupal API 工作,但成功有限。
我想要一个带有表单的 URL,这样当我“获取”该 URL 时,我会得到表单(有那个),当我在该表单中输入错误的“代码”并发布相同的 URL 时,我会得到相同的带有错误消息的表单(也有),但是当我使用正确的“代码”发布相同的 URL时,我得到一个不同的代码,不再显示以前的表单。
没有重定向,所有请求(帖子和获取)都应针对 domain.com/entry
这是我的代码(简化):
function entry_menu() {
$items['entry'] = array(
'page callback' => 'entry_handler',
'access arguments' => array('access entry'),
type => MENU_CALLBACK,
);
return $items;
}
function entry_handler() {
return drupal_get_form('entry_daily_code');
}
function entry_daily_code($form, &$form_state) {
$form['code'] = array(
'#type' => 'textfield',
'#title' => 'Code for Today',
);
form['submit'] = array(
'#type' => 'submit',
'#value' => 'Access',
);
return $form;
}
function entry_daily_code_submit($form, &$form_state) {
if (isset($form_state['values']['code']) && $form_state['values'] == "1234") {
drupal_set_message(t('Success'));
}
else {
drupal_set_message(t('Fail'));
}
}
我想我想做的事情应该发生在“entry_handler”中。
它需要知道表单返回的状态,并返回表单或不同的内容,但我没有做到这一点。
做了一个图表来说明我的观点,以防它没有遇到:
感谢您提供正确方向的任何指示。