私は Drupal API に取り組んでいますが、成功は限られています。
フォームを含む URL が必要なため、その URL を「GET」するとフォームが取得されます (それを取得します)。そのフォームに間違った「コード」を入力して同じ URL を POST すると、同じ URL が取得されます。エラーメッセージのあるフォーム(それもあります)ですが、同じURLを正しい「コード」でPOSTすると、別のコードが表示され、以前のフォームが表示されなくなります。
リダイレクトはありません。すべてのリクエスト (投稿と取得) は 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」で起こるはずだと想像します。
フォームから返されたステータスを知り、フォームまたは別のコンテンツを返す必要がありますが、私はそれに失敗しています。
うまくいかなかった場合に備えて、私の要点を説明するために図を作成しました。
正しい方向への指針をありがとう。