function node_menu() { $items['admin/content'] = array( 'title' => 'Content', 'description' => 'Find and manage content.', 'page callback' => 'drupal_get_form', 'page arguments' => array('node_admin_content'), 'access arguments' => array('access content overview'), 'weight' => -10, 'file' => 'node.admin.inc', ); // … return $items; }
フォーム(form)をカスタマイズ時に、hook_form_alter、hook_form_FORM_ID_alter、hook_form_BASE_FORM_ID_alterの何れかを実装して行います。ここで、既存のフォームを特定するために、そのform_idが必要となってきまして、どこでカスタマイズ先のフォームIDを取得するのかは戸惑いました。
例えば、LDAPモジュールをインストールして、認証関連設定ページ(Home » Administration » Configuration » People » LDAP Configuration のAUTHENTICATIONタブ)で、その設定フォームのform_idを見てみましょう。
/** * Implement hook_form */ function your_custom_form($node, &$form_state) { $form['type'] = array( '#type' => 'radios', '#options' => array( 'agree' => t('賛成'), 'disagree' => t('反対'), ), '#title' => t('投票してください'), ); $form['survey'] = array( '#type' => 'fieldtext', '#title' => t('反対意見'), '#states' => array( 'visible' => array( ':input[name="type"]' => array('value' => 'disagree'), ), ), ); }
/** * Implementation of hook_menu() * 新規フォームを表示するページのメニュー設定 */ function my_module_name_menu() { $items['test/form'] = array( 'title' => 'Ajaxテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('my_sample_form'), 'access arguments' => array('access content'), ); } /** * フォームの各要素の記述 */ function my_sample_form($form, &$form_state){ // メッセージ入力フィールド $form['message'] = array( '#type' => 'textfield', '#title' => t('メッセージを入力'), ); // 入力されたメッセージをajaxで表示する場所 $form['msg_wrapper'] = array( '#type' => 'markup', '#markup' => "", '#prefix' => '<div id="msg-wrapper">', '#suffix' => '</div>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'test_sample_form_ajax_callback', 'wrapper' => 'msg-wrapper', 'effect' => 'fade', ), ); return $form; } /** * ajaxに呼び出される関数 */ function test_sample_form_ajax_callback($form, $form_state) { // 入力されたメッセージを指定した場所にセット $form['msg_wrapper']['#markup'] = '入力されたメッセージ:' . check_plain($form_state['values']['message']) ; // 置換する部品を返す return $form['msg_wrapper'] ; }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiple_step_form'), 'access arguments' => array('access content'), ); return $items; } /** * マルチステップフォームの定義 */ function multiple_step_form($form, &$form_state){ switch( $form_state['pager'] ) { case 'page_1' : return page_one_form(); break; case 'page_2' : return page_two_form(); break; } } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_1"; // 任一のメッセージ表示 $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_one_form_submit'; return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_two"; // 任一のメッセージ表示 $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_two_form_submit'; return $form; } /** * ステップ1のボタンイベントハンドラー */ function page_one_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_two"; $form_state['rebuild'] = true; return ; } /** * ステップ2のボタンイベントハンドラー */ function page_two_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_one"; $form_state['rebuild'] = true; return ; }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('page_one_form'), 'access arguments' => array('access content'), ); return $items; } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_1_ajax_callback', ), ); return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_2_ajax_callback', ), ); return $form; } /** * ステップ1のコールバック関数 */ function card_1_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_two_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main', '<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); } /** * ステップ2のコールバック関数 */ function card_2_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_one_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main','<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiple_step_form'), 'access arguments' => array('access content'), ); return $items; } /** * マルチステップフォームの定義 */ function multiple_step_form($form, &$form_state){ switch( $form_state['pager'] ) { case 'page_1' : return page_one_form(); break; case 'page_2' : return page_two_form(); break; } } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_1"; // 任一のメッセージ表示 $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_one_form_submit'; return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_two"; // 任一のメッセージ表示 $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_two_form_submit'; return $form; } /** * ステップ1のボタンイベントハンドラー */ function page_one_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_two"; $form_state['rebuild'] = true; return ; } /** * ステップ2のボタンイベントハンドラー */ function page_two_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_one"; $form_state['rebuild'] = true; return ; }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('page_one_form'), 'access arguments' => array('access content'), ); return $items; } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_1_ajax_callback', ), ); return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_2_ajax_callback', ), ); return $form; } /** * ステップ1のコールバック関数 */ function card_1_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_two_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main', '<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); } /** * ステップ2のコールバック関数 */ function card_2_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_one_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main','<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiple_step_form'), 'access arguments' => array('access content'), ); return $items; } /** * マルチステップフォームの定義 */ function multiple_step_form($form, &$form_state){ switch( $form_state['pager'] ) { case 'page_1' : return page_one_form(); break; case 'page_2' : return page_two_form(); break; } } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_1"; // 任一のメッセージ表示 $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_one_form_submit'; return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_two"; // 任一のメッセージ表示 $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_two_form_submit'; return $form; } /** * ステップ1のボタンイベントハンドラー */ function page_one_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_two"; $form_state['rebuild'] = true; return ; } /** * ステップ2のボタンイベントハンドラー */ function page_two_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_one"; $form_state['rebuild'] = true; return ; }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('page_one_form'), 'access arguments' => array('access content'), ); return $items; } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_1_ajax_callback', ), ); return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_2_ajax_callback', ), ); return $form; } /** * ステップ1のコールバック関数 */ function card_1_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_two_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main', '<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); } /** * ステップ2のコールバック関数 */ function card_2_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_one_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main','<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiple_step_form'), 'access arguments' => array('access content'), ); return $items; } /** * マルチステップフォームの定義 */ function multiple_step_form($form, &$form_state){ switch( $form_state['pager'] ) { case 'page_1' : return page_one_form(); break; case 'page_2' : return page_two_form(); break; } } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_1"; // 任一のメッセージ表示 $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_one_form_submit'; return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_two"; // 任一のメッセージ表示 $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_two_form_submit'; return $form; } /** * ステップ1のボタンイベントハンドラー */ function page_one_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_two"; $form_state['rebuild'] = true; return ; } /** * ステップ2のボタンイベントハンドラー */ function page_two_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_one"; $form_state['rebuild'] = true; return ; }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('page_one_form'), 'access arguments' => array('access content'), ); return $items; } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_1_ajax_callback', ), ); return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_2_ajax_callback', ), ); return $form; } /** * ステップ1のコールバック関数 */ function card_1_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_two_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main', '<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); } /** * ステップ2のコールバック関数 */ function card_2_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_one_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main','<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiple_step_form'), 'access arguments' => array('access content'), ); return $items; } /** * マルチステップフォームの定義 */ function multiple_step_form($form, &$form_state){ switch( $form_state['pager'] ) { case 'page_1' : return page_one_form(); break; case 'page_2' : return page_two_form(); break; } } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_1"; // 任一のメッセージ表示 $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_one_form_submit'; return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_two"; // 任一のメッセージ表示 $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_two_form_submit'; return $form; } /** * ステップ1のボタンイベントハンドラー */ function page_one_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_two"; $form_state['rebuild'] = true; return ; } /** * ステップ2のボタンイベントハンドラー */ function page_two_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_one"; $form_state['rebuild'] = true; return ; }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('page_one_form'), 'access arguments' => array('access content'), ); return $items; } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_1_ajax_callback', ), ); return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_2_ajax_callback', ), ); return $form; } /** * ステップ1のコールバック関数 */ function card_1_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_two_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main', '<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); } /** * ステップ2のコールバック関数 */ function card_2_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_one_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main','<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiple_step_form'), 'access arguments' => array('access content'), ); return $items; } /** * マルチステップフォームの定義 */ function multiple_step_form($form, &$form_state){ switch( $form_state['pager'] ) { case 'page_1' : return page_one_form(); break; case 'page_2' : return page_two_form(); break; } } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_1"; // 任一のメッセージ表示 $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_one_form_submit'; return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_two"; // 任一のメッセージ表示 $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_two_form_submit'; return $form; } /** * ステップ1のボタンイベントハンドラー */ function page_one_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_two"; $form_state['rebuild'] = true; return ; } /** * ステップ2のボタンイベントハンドラー */ function page_two_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_one"; $form_state['rebuild'] = true; return ; }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('page_one_form'), 'access arguments' => array('access content'), ); return $items; } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_1_ajax_callback', ), ); return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_2_ajax_callback', ), ); return $form; } /** * ステップ1のコールバック関数 */ function card_1_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_two_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main', '<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); } /** * ステップ2のコールバック関数 */ function card_2_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_one_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main','<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiple_step_form'), 'access arguments' => array('access content'), ); return $items; } /** * マルチステップフォームの定義 */ function multiple_step_form($form, &$form_state){ switch( $form_state['pager'] ) { case 'page_1' : return page_one_form(); break; case 'page_2' : return page_two_form(); break; } } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_1"; // 任一のメッセージ表示 $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_one_form_submit'; return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_two"; // 任一のメッセージ表示 $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_two_form_submit'; return $form; } /** * ステップ1のボタンイベントハンドラー */ function page_one_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_two"; $form_state['rebuild'] = true; return ; } /** * ステップ2のボタンイベントハンドラー */ function page_two_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_one"; $form_state['rebuild'] = true; return ; }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('page_one_form'), 'access arguments' => array('access content'), ); return $items; } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_1_ajax_callback', ), ); return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_2_ajax_callback', ), ); return $form; } /** * ステップ1のコールバック関数 */ function card_1_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_two_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main', '<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); } /** * ステップ2のコールバック関数 */ function card_2_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_one_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main','<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiple_step_form'), 'access arguments' => array('access content'), ); return $items; } /** * マルチステップフォームの定義 */ function multiple_step_form($form, &$form_state){ switch( $form_state['pager'] ) { case 'page_1' : return page_one_form(); break; case 'page_2' : return page_two_form(); break; } } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_1"; // 任一のメッセージ表示 $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_one_form_submit'; return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_two"; // 任一のメッセージ表示 $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_two_form_submit'; return $form; } /** * ステップ1のボタンイベントハンドラー */ function page_one_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_two"; $form_state['rebuild'] = true; return ; } /** * ステップ2のボタンイベントハンドラー */ function page_two_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_one"; $form_state['rebuild'] = true; return ; }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('page_one_form'), 'access arguments' => array('access content'), ); return $items; } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_1_ajax_callback', ), ); return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_2_ajax_callback', ), ); return $form; } /** * ステップ1のコールバック関数 */ function card_1_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_two_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main', '<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); } /** * ステップ2のコールバック関数 */ function card_2_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_one_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main','<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiple_step_form'), 'access arguments' => array('access content'), ); return $items; } /** * マルチステップフォームの定義 */ function multiple_step_form($form, &$form_state){ switch( $form_state['pager'] ) { case 'page_1' : return page_one_form(); break; case 'page_2' : return page_two_form(); break; } } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_1"; // 任一のメッセージ表示 $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_one_form_submit'; return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_two"; // 任一のメッセージ表示 $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_two_form_submit'; return $form; } /** * ステップ1のボタンイベントハンドラー */ function page_one_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_two"; $form_state['rebuild'] = true; return ; } /** * ステップ2のボタンイベントハンドラー */ function page_two_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_one"; $form_state['rebuild'] = true; return ; }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('page_one_form'), 'access arguments' => array('access content'), ); return $items; } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_1_ajax_callback', ), ); return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_2_ajax_callback', ), ); return $form; } /** * ステップ1のコールバック関数 */ function card_1_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_two_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main', '<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); } /** * ステップ2のコールバック関数 */ function card_2_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_one_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main','<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiple_step_form'), 'access arguments' => array('access content'), ); return $items; } /** * マルチステップフォームの定義 */ function multiple_step_form($form, &$form_state){ switch( $form_state['pager'] ) { case 'page_1' : return page_one_form(); break; case 'page_2' : return page_two_form(); break; } } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_1"; // 任一のメッセージ表示 $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_one_form_submit'; return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_two"; // 任一のメッセージ表示 $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_two_form_submit'; return $form; } /** * ステップ1のボタンイベントハンドラー */ function page_one_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_two"; $form_state['rebuild'] = true; return ; } /** * ステップ2のボタンイベントハンドラー */ function page_two_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_one"; $form_state['rebuild'] = true; return ; }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('page_one_form'), 'access arguments' => array('access content'), ); return $items; } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_1_ajax_callback', ), ); return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_2_ajax_callback', ), ); return $form; } /** * ステップ1のコールバック関数 */ function card_1_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_two_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main', '<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); } /** * ステップ2のコールバック関数 */ function card_2_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_one_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main','<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiple_step_form'), 'access arguments' => array('access content'), ); return $items; } /** * マルチステップフォームの定義 */ function multiple_step_form($form, &$form_state){ switch( $form_state['pager'] ) { case 'page_1' : return page_one_form(); break; case 'page_2' : return page_two_form(); break; } } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_1"; // 任一のメッセージ表示 $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_one_form_submit'; return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_two"; // 任一のメッセージ表示 $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_two_form_submit'; return $form; } /** * ステップ1のボタンイベントハンドラー */ function page_one_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_two"; $form_state['rebuild'] = true; return ; } /** * ステップ2のボタンイベントハンドラー */ function page_two_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_one"; $form_state['rebuild'] = true; return ; }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('page_one_form'), 'access arguments' => array('access content'), ); return $items; } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_1_ajax_callback', ), ); return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_2_ajax_callback', ), ); return $form; } /** * ステップ1のコールバック関数 */ function card_1_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_two_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main', '<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); } /** * ステップ2のコールバック関数 */ function card_2_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_one_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main','<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiple_step_form'), 'access arguments' => array('access content'), ); return $items; } /** * マルチステップフォームの定義 */ function multiple_step_form($form, &$form_state){ switch( $form_state['pager'] ) { case 'page_1' : return page_one_form(); break; case 'page_2' : return page_two_form(); break; } } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_1"; // 任一のメッセージ表示 $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_one_form_submit'; return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_two"; // 任一のメッセージ表示 $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_two_form_submit'; return $form; } /** * ステップ1のボタンイベントハンドラー */ function page_one_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_two"; $form_state['rebuild'] = true; return ; } /** * ステップ2のボタンイベントハンドラー */ function page_two_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_one"; $form_state['rebuild'] = true; return ; }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('page_one_form'), 'access arguments' => array('access content'), ); return $items; } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_1_ajax_callback', ), ); return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_2_ajax_callback', ), ); return $form; } /** * ステップ1のコールバック関数 */ function card_1_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_two_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main', '<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); } /** * ステップ2のコールバック関数 */ function card_2_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_one_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main','<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiple_step_form'), 'access arguments' => array('access content'), ); return $items; } /** * マルチステップフォームの定義 */ function multiple_step_form($form, &$form_state){ switch( $form_state['pager'] ) { case 'page_1' : return page_one_form(); break; case 'page_2' : return page_two_form(); break; } } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_1"; // 任一のメッセージ表示 $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_one_form_submit'; return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_two"; // 任一のメッセージ表示 $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_two_form_submit'; return $form; } /** * ステップ1のボタンイベントハンドラー */ function page_one_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_two"; $form_state['rebuild'] = true; return ; } /** * ステップ2のボタンイベントハンドラー */ function page_two_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_one"; $form_state['rebuild'] = true; return ; }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('page_one_form'), 'access arguments' => array('access content'), ); return $items; } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_1_ajax_callback', ), ); return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_2_ajax_callback', ), ); return $form; } /** * ステップ1のコールバック関数 */ function card_1_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_two_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main', '<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); } /** * ステップ2のコールバック関数 */ function card_2_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_one_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main','<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiple_step_form'), 'access arguments' => array('access content'), ); return $items; } /** * マルチステップフォームの定義 */ function multiple_step_form($form, &$form_state){ switch( $form_state['pager'] ) { case 'page_1' : return page_one_form(); break; case 'page_2' : return page_two_form(); break; } } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_1"; // 任一のメッセージ表示 $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_one_form_submit'; return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_two"; // 任一のメッセージ表示 $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_two_form_submit'; return $form; } /** * ステップ1のボタンイベントハンドラー */ function page_one_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_two"; $form_state['rebuild'] = true; return ; } /** * ステップ2のボタンイベントハンドラー */ function page_two_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_one"; $form_state['rebuild'] = true; return ; }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('page_one_form'), 'access arguments' => array('access content'), ); return $items; } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_1_ajax_callback', ), ); return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_2_ajax_callback', ), ); return $form; } /** * ステップ1のコールバック関数 */ function card_1_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_two_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main', '<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); } /** * ステップ2のコールバック関数 */ function card_2_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_one_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main','<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiple_step_form'), 'access arguments' => array('access content'), ); return $items; } /** * マルチステップフォームの定義 */ function multiple_step_form($form, &$form_state){ switch( $form_state['pager'] ) { case 'page_1' : return page_one_form(); break; case 'page_2' : return page_two_form(); break; } } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_1"; // 任一のメッセージ表示 $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_one_form_submit'; return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_two"; // 任一のメッセージ表示 $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_two_form_submit'; return $form; } /** * ステップ1のボタンイベントハンドラー */ function page_one_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_two"; $form_state['rebuild'] = true; return ; } /** * ステップ2のボタンイベントハンドラー */ function page_two_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_one"; $form_state['rebuild'] = true; return ; }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('page_one_form'), 'access arguments' => array('access content'), ); return $items; } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_1_ajax_callback', ), ); return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_2_ajax_callback', ), ); return $form; } /** * ステップ1のコールバック関数 */ function card_1_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_two_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main', '<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); } /** * ステップ2のコールバック関数 */ function card_2_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_one_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main','<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiple_step_form'), 'access arguments' => array('access content'), ); return $items; } /** * マルチステップフォームの定義 */ function multiple_step_form($form, &$form_state){ switch( $form_state['pager'] ) { case 'page_1' : return page_one_form(); break; case 'page_2' : return page_two_form(); break; } } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_1"; // 任一のメッセージ表示 $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_one_form_submit'; return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_two"; // 任一のメッセージ表示 $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_two_form_submit'; return $form; } /** * ステップ1のボタンイベントハンドラー */ function page_one_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_two"; $form_state['rebuild'] = true; return ; } /** * ステップ2のボタンイベントハンドラー */ function page_two_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_one"; $form_state['rebuild'] = true; return ; }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('page_one_form'), 'access arguments' => array('access content'), ); return $items; } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_1_ajax_callback', ), ); return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_2_ajax_callback', ), ); return $form; } /** * ステップ1のコールバック関数 */ function card_1_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_two_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main', '<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); } /** * ステップ2のコールバック関数 */ function card_2_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_one_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main','<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiple_step_form'), 'access arguments' => array('access content'), ); return $items; } /** * マルチステップフォームの定義 */ function multiple_step_form($form, &$form_state){ switch( $form_state['pager'] ) { case 'page_1' : return page_one_form(); break; case 'page_2' : return page_two_form(); break; } } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_1"; // 任一のメッセージ表示 $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_one_form_submit'; return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_two"; // 任一のメッセージ表示 $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_two_form_submit'; return $form; } /** * ステップ1のボタンイベントハンドラー */ function page_one_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_two"; $form_state['rebuild'] = true; return ; } /** * ステップ2のボタンイベントハンドラー */ function page_two_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_one"; $form_state['rebuild'] = true; return ; }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('page_one_form'), 'access arguments' => array('access content'), ); return $items; } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_1_ajax_callback', ), ); return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_2_ajax_callback', ), ); return $form; } /** * ステップ1のコールバック関数 */ function card_1_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_two_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main', '<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); } /** * ステップ2のコールバック関数 */ function card_2_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_one_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main','<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiple_step_form'), 'access arguments' => array('access content'), ); return $items; } /** * マルチステップフォームの定義 */ function multiple_step_form($form, &$form_state){ switch( $form_state['pager'] ) { case 'page_1' : return page_one_form(); break; case 'page_2' : return page_two_form(); break; } } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_1"; // 任一のメッセージ表示 $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_one_form_submit'; return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_two"; // 任一のメッセージ表示 $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_two_form_submit'; return $form; } /** * ステップ1のボタンイベントハンドラー */ function page_one_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_two"; $form_state['rebuild'] = true; return ; } /** * ステップ2のボタンイベントハンドラー */ function page_two_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_one"; $form_state['rebuild'] = true; return ; }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('page_one_form'), 'access arguments' => array('access content'), ); return $items; } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_1_ajax_callback', ), ); return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_2_ajax_callback', ), ); return $form; } /** * ステップ1のコールバック関数 */ function card_1_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_two_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main', '<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); } /** * ステップ2のコールバック関数 */ function card_2_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_one_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main','<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiple_step_form'), 'access arguments' => array('access content'), ); return $items; } /** * マルチステップフォームの定義 */ function multiple_step_form($form, &$form_state){ switch( $form_state['pager'] ) { case 'page_1' : return page_one_form(); break; case 'page_2' : return page_two_form(); break; } } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_1"; // 任一のメッセージ表示 $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_one_form_submit'; return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_two"; // 任一のメッセージ表示 $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_two_form_submit'; return $form; } /** * ステップ1のボタンイベントハンドラー */ function page_one_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_two"; $form_state['rebuild'] = true; return ; } /** * ステップ2のボタンイベントハンドラー */ function page_two_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_one"; $form_state['rebuild'] = true; return ; }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('page_one_form'), 'access arguments' => array('access content'), ); return $items; } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_1_ajax_callback', ), ); return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_2_ajax_callback', ), ); return $form; } /** * ステップ1のコールバック関数 */ function card_1_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_two_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main', '<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); } /** * ステップ2のコールバック関数 */ function card_2_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_one_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main','<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiple_step_form'), 'access arguments' => array('access content'), ); return $items; } /** * マルチステップフォームの定義 */ function multiple_step_form($form, &$form_state){ switch( $form_state['pager'] ) { case 'page_1' : return page_one_form(); break; case 'page_2' : return page_two_form(); break; } } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_1"; // 任一のメッセージ表示 $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_one_form_submit'; return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_two"; // 任一のメッセージ表示 $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_two_form_submit'; return $form; } /** * ステップ1のボタンイベントハンドラー */ function page_one_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_two"; $form_state['rebuild'] = true; return ; } /** * ステップ2のボタンイベントハンドラー */ function page_two_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_one"; $form_state['rebuild'] = true; return ; }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('page_one_form'), 'access arguments' => array('access content'), ); return $items; } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_1_ajax_callback', ), ); return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'card_2_ajax_callback', ), ); return $form; } /** * ステップ1のコールバック関数 */ function card_1_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_two_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main', '<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); } /** * ステップ2のコールバック関数 */ function card_2_ajax_callback($form, &$form_state){ // 次のステップのフォームの用意 $form = drupal_rebuild_form( 'card_one_form', $form_state ); // フォームのHTML部分の置換コマンド用意 $commands[]=ajax_command_replace( '#block-system-main','<section class="block block-system clearfix" id="block-system-main">'.render($form).'</section>' ); return array('#type' => 'ajax', '#commands' => $commands); }
/** * メニューでURLの定義 */ function your_module_menu() { $items['form/multiple-step'] = array( 'title' => t('Multiple Step Form Test'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiple_step_form'), 'access arguments' => array('access content'), ); return $items; } /** * マルチステップフォームの定義 */ function multiple_step_form($form, &$form_state){ switch( $form_state['pager'] ) { case 'page_1' : return page_one_form(); break; case 'page_2' : return page_two_form(); break; } } /** * ステップ1 フォームの定義 */ function page_one_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_1"; // 任一のメッセージ表示 $form['message_field'] = array( '#type' => 'markup', '#markup' => 'Form Step 1', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_one_form_submit'; return $form;} } /** * ステップ2 フォームの定義 */ function page_two_form( $form, &$form_state ){ // ステップの定義 $form_state['pager'] = "page_two"; // 任一のメッセージ表示 $form['test_form']=array( '#type' => 'item', '#title' => 'Multiple Step Form', '#markup' => '<p>Step 2</p>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', ); // サブミットボタンのイベントハンドラー $form['#submit'][] = 'page_two_form_submit'; return $form; } /** * ステップ1のボタンイベントハンドラー */ function page_one_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_two"; $form_state['rebuild'] = true; return ; } /** * ステップ2のボタンイベントハンドラー */ function page_two_form_submit($form, &$form_state){ $form_state['pager']['card_page']= "page_one"; $form_state['rebuild'] = true; return ; }
/** * Implementation of hook_menu() * 新規フォームを表示するページのメニュー設定 */ function my_module_name_menu() { $items['test/form'] = array( 'title' => 'Ajaxテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('my_sample_form'), 'access arguments' => array('access content'), ); } /** * フォームの各要素の記述 */ function my_sample_form($form, &$form_state){ // メッセージ入力フィールド $form['message'] = array( '#type' => 'textfield', '#title' => t('メッセージを入力'), ); // 入力されたメッセージをajaxで表示する場所 $form['msg_wrapper'] = array( '#type' => 'markup', '#markup' => "", '#prefix' => '<div id="msg-wrapper">', '#suffix' => '</div>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'test_sample_form_ajax_callback', 'wrapper' => 'msg-wrapper', 'effect' => 'fade', ), ); return $form; } /** * ajaxに呼び出される関数 */ function test_sample_form_ajax_callback($form, $form_state) { // 入力されたメッセージを指定した場所にセット $form['msg_wrapper']['#markup'] = '入力されたメッセージ:' . check_plain($form_state['values']['message']) ; // 置換する部品を返す return $form['msg_wrapper'] ; }
/** * Implementation of hook_menu() * 新規フォームを表示するページのメニュー設定 */ function my_module_name_menu() { $items['test/form'] = array( 'title' => 'Ajaxテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('my_sample_form'), 'access arguments' => array('access content'), ); } /** * フォームの各要素の記述 */ function my_sample_form($form, &$form_state){ // メッセージ入力フィールド $form['message'] = array( '#type' => 'textfield', '#title' => t('メッセージを入力'), ); // 入力されたメッセージをajaxで表示する場所 $form['msg_wrapper'] = array( '#type' => 'markup', '#markup' => "", '#prefix' => '<div id="msg-wrapper">', '#suffix' => '</div>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'test_sample_form_ajax_callback', 'wrapper' => 'msg-wrapper', 'effect' => 'fade', ), ); return $form; } /** * ajaxに呼び出される関数 */ function test_sample_form_ajax_callback($form, $form_state) { // 入力されたメッセージを指定した場所にセット $form['msg_wrapper']['#markup'] = '入力されたメッセージ:' . check_plain($form_state['values']['message']) ; // 置換する部品を返す return $form['msg_wrapper'] ; }
/** * Implementation of hook_menu() * 新規フォームを表示するページのメニュー設定 */ function my_module_name_menu() { $items['test/form'] = array( 'title' => 'Ajaxテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('my_sample_form'), 'access arguments' => array('access content'), ); } /** * フォームの各要素の記述 */ function my_sample_form($form, &$form_state){ // メッセージ入力フィールド $form['message'] = array( '#type' => 'textfield', '#title' => t('メッセージを入力'), ); // 入力されたメッセージをajaxで表示する場所 $form['msg_wrapper'] = array( '#type' => 'markup', '#markup' => "", '#prefix' => '<div id="msg-wrapper">', '#suffix' => '</div>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'test_sample_form_ajax_callback', 'wrapper' => 'msg-wrapper', 'effect' => 'fade', ), ); return $form; } /** * ajaxに呼び出される関数 */ function test_sample_form_ajax_callback($form, $form_state) { // 入力されたメッセージを指定した場所にセット $form['msg_wrapper']['#markup'] = '入力されたメッセージ:' . check_plain($form_state['values']['message']) ; // 置換する部品を返す return $form['msg_wrapper'] ; }
/** * Implementation of hook_menu() * 新規フォームを表示するページのメニュー設定 */ function my_module_name_menu() { $items['test/form'] = array( 'title' => 'Ajaxテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('my_sample_form'), 'access arguments' => array('access content'), ); } /** * フォームの各要素の記述 */ function my_sample_form($form, &$form_state){ // メッセージ入力フィールド $form['message'] = array( '#type' => 'textfield', '#title' => t('メッセージを入力'), ); // 入力されたメッセージをajaxで表示する場所 $form['msg_wrapper'] = array( '#type' => 'markup', '#markup' => "", '#prefix' => '<div id="msg-wrapper">', '#suffix' => '</div>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'test_sample_form_ajax_callback', 'wrapper' => 'msg-wrapper', 'effect' => 'fade', ), ); return $form; } /** * ajaxに呼び出される関数 */ function test_sample_form_ajax_callback($form, $form_state) { // 入力されたメッセージを指定した場所にセット $form['msg_wrapper']['#markup'] = '入力されたメッセージ:' . check_plain($form_state['values']['message']) ; // 置換する部品を返す return $form['msg_wrapper'] ; }
/** * Implementation of hook_menu() * 新規フォームを表示するページのメニュー設定 */ function my_module_name_menu() { $items['test/form'] = array( 'title' => 'Ajaxテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('my_sample_form'), 'access arguments' => array('access content'), ); } /** * フォームの各要素の記述 */ function my_sample_form($form, &$form_state){ // メッセージ入力フィールド $form['message'] = array( '#type' => 'textfield', '#title' => t('メッセージを入力'), ); // 入力されたメッセージをajaxで表示する場所 $form['msg_wrapper'] = array( '#type' => 'markup', '#markup' => "", '#prefix' => '<div id="msg-wrapper">', '#suffix' => '</div>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'test_sample_form_ajax_callback', 'wrapper' => 'msg-wrapper', 'effect' => 'fade', ), ); return $form; } /** * ajaxに呼び出される関数 */ function test_sample_form_ajax_callback($form, $form_state) { // 入力されたメッセージを指定した場所にセット $form['msg_wrapper']['#markup'] = '入力されたメッセージ:' . check_plain($form_state['values']['message']) ; // 置換する部品を返す return $form['msg_wrapper'] ; }
/** * Implementation of hook_menu() * 新規フォームを表示するページのメニュー設定 */ function my_module_name_menu() { $items['test/form'] = array( 'title' => 'Ajaxテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('my_sample_form'), 'access arguments' => array('access content'), ); } /** * フォームの各要素の記述 */ function my_sample_form($form, &$form_state){ // メッセージ入力フィールド $form['message'] = array( '#type' => 'textfield', '#title' => t('メッセージを入力'), ); // 入力されたメッセージをajaxで表示する場所 $form['msg_wrapper'] = array( '#type' => 'markup', '#markup' => "", '#prefix' => '<div id="msg-wrapper">', '#suffix' => '</div>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'test_sample_form_ajax_callback', 'wrapper' => 'msg-wrapper', 'effect' => 'fade', ), ); return $form; } /** * ajaxに呼び出される関数 */ function test_sample_form_ajax_callback($form, $form_state) { // 入力されたメッセージを指定した場所にセット $form['msg_wrapper']['#markup'] = '入力されたメッセージ:' . check_plain($form_state['values']['message']) ; // 置換する部品を返す return $form['msg_wrapper'] ; }
/** * Implementation of hook_menu() * 新規フォームを表示するページのメニュー設定 */ function my_module_name_menu() { $items['test/form'] = array( 'title' => 'Ajaxテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('my_sample_form'), 'access arguments' => array('access content'), ); } /** * フォームの各要素の記述 */ function my_sample_form($form, &$form_state){ // メッセージ入力フィールド $form['message'] = array( '#type' => 'textfield', '#title' => t('メッセージを入力'), ); // 入力されたメッセージをajaxで表示する場所 $form['msg_wrapper'] = array( '#type' => 'markup', '#markup' => "", '#prefix' => '<div id="msg-wrapper">', '#suffix' => '</div>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'test_sample_form_ajax_callback', 'wrapper' => 'msg-wrapper', 'effect' => 'fade', ), ); return $form; } /** * ajaxに呼び出される関数 */ function test_sample_form_ajax_callback($form, $form_state) { // 入力されたメッセージを指定した場所にセット $form['msg_wrapper']['#markup'] = '入力されたメッセージ:' . check_plain($form_state['values']['message']) ; // 置換する部品を返す return $form['msg_wrapper'] ; }
/** * Implementation of hook_menu() * 新規フォームを表示するページのメニュー設定 */ function my_module_name_menu() { $items['test/form'] = array( 'title' => 'Ajaxテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('my_sample_form'), 'access arguments' => array('access content'), ); } /** * フォームの各要素の記述 */ function my_sample_form($form, &$form_state){ // メッセージ入力フィールド $form['message'] = array( '#type' => 'textfield', '#title' => t('メッセージを入力'), ); // 入力されたメッセージをajaxで表示する場所 $form['msg_wrapper'] = array( '#type' => 'markup', '#markup' => "", '#prefix' => '<div id="msg-wrapper">', '#suffix' => '</div>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'test_sample_form_ajax_callback', 'wrapper' => 'msg-wrapper', 'effect' => 'fade', ), ); return $form; } /** * ajaxに呼び出される関数 */ function test_sample_form_ajax_callback($form, $form_state) { // 入力されたメッセージを指定した場所にセット $form['msg_wrapper']['#markup'] = '入力されたメッセージ:' . check_plain($form_state['values']['message']) ; // 置換する部品を返す return $form['msg_wrapper'] ; }
/** * Implementation of hook_menu() * 新規フォームを表示するページのメニュー設定 */ function my_module_name_menu() { $items['test/form'] = array( 'title' => 'Ajaxテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('my_sample_form'), 'access arguments' => array('access content'), ); } /** * フォームの各要素の記述 */ function my_sample_form($form, &$form_state){ // メッセージ入力フィールド $form['message'] = array( '#type' => 'textfield', '#title' => t('メッセージを入力'), ); // 入力されたメッセージをajaxで表示する場所 $form['msg_wrapper'] = array( '#type' => 'markup', '#markup' => "", '#prefix' => '<div id="msg-wrapper">', '#suffix' => '</div>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'test_sample_form_ajax_callback', 'wrapper' => 'msg-wrapper', 'effect' => 'fade', ), ); return $form; } /** * ajaxに呼び出される関数 */ function test_sample_form_ajax_callback($form, $form_state) { // 入力されたメッセージを指定した場所にセット $form['msg_wrapper']['#markup'] = '入力されたメッセージ:' . check_plain($form_state['values']['message']) ; // 置換する部品を返す return $form['msg_wrapper'] ; }
/** * Implementation of hook_menu() * 新規フォームを表示するページのメニュー設定 */ function my_module_name_menu() { $items['test/form'] = array( 'title' => 'Ajaxテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('my_sample_form'), 'access arguments' => array('access content'), ); } /** * フォームの各要素の記述 */ function my_sample_form($form, &$form_state){ // メッセージ入力フィールド $form['message'] = array( '#type' => 'textfield', '#title' => t('メッセージを入力'), ); // 入力されたメッセージをajaxで表示する場所 $form['msg_wrapper'] = array( '#type' => 'markup', '#markup' => "", '#prefix' => '<div id="msg-wrapper">', '#suffix' => '</div>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'test_sample_form_ajax_callback', 'wrapper' => 'msg-wrapper', 'effect' => 'fade', ), ); return $form; } /** * ajaxに呼び出される関数 */ function test_sample_form_ajax_callback($form, $form_state) { // 入力されたメッセージを指定した場所にセット $form['msg_wrapper']['#markup'] = '入力されたメッセージ:' . check_plain($form_state['values']['message']) ; // 置換する部品を返す return $form['msg_wrapper'] ; }
/** * Implementation of hook_menu() * 新規フォームを表示するページのメニュー設定 */ function my_module_name_menu() { $items['test/form'] = array( 'title' => 'Ajaxテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('my_sample_form'), 'access arguments' => array('access content'), ); } /** * フォームの各要素の記述 */ function my_sample_form($form, &$form_state){ // メッセージ入力フィールド $form['message'] = array( '#type' => 'textfield', '#title' => t('メッセージを入力'), ); // 入力されたメッセージをajaxで表示する場所 $form['msg_wrapper'] = array( '#type' => 'markup', '#markup' => "", '#prefix' => '<div id="msg-wrapper">', '#suffix' => '</div>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'test_sample_form_ajax_callback', 'wrapper' => 'msg-wrapper', 'effect' => 'fade', ), ); return $form; } /** * ajaxに呼び出される関数 */ function test_sample_form_ajax_callback($form, $form_state) { // 入力されたメッセージを指定した場所にセット $form['msg_wrapper']['#markup'] = '入力されたメッセージ:' . check_plain($form_state['values']['message']) ; // 置換する部品を返す return $form['msg_wrapper'] ; }
/** * Implementation of hook_menu() * 新規フォームを表示するページのメニュー設定 */ function my_module_name_menu() { $items['test/form'] = array( 'title' => 'Ajaxテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('my_sample_form'), 'access arguments' => array('access content'), ); } /** * フォームの各要素の記述 */ function my_sample_form($form, &$form_state){ // メッセージ入力フィールド $form['message'] = array( '#type' => 'textfield', '#title' => t('メッセージを入力'), ); // 入力されたメッセージをajaxで表示する場所 $form['msg_wrapper'] = array( '#type' => 'markup', '#markup' => "", '#prefix' => '<div id="msg-wrapper">', '#suffix' => '</div>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'test_sample_form_ajax_callback', 'wrapper' => 'msg-wrapper', 'effect' => 'fade', ), ); return $form; } /** * ajaxに呼び出される関数 */ function test_sample_form_ajax_callback($form, $form_state) { // 入力されたメッセージを指定した場所にセット $form['msg_wrapper']['#markup'] = '入力されたメッセージ:' . check_plain($form_state['values']['message']) ; // 置換する部品を返す return $form['msg_wrapper'] ; }
/** * Implementation of hook_menu() * 新規フォームを表示するページのメニュー設定 */ function my_module_name_menu() { $items['test/form'] = array( 'title' => 'Ajaxテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('my_sample_form'), 'access arguments' => array('access content'), ); } /** * フォームの各要素の記述 */ function my_sample_form($form, &$form_state){ // メッセージ入力フィールド $form['message'] = array( '#type' => 'textfield', '#title' => t('メッセージを入力'), ); // 入力されたメッセージをajaxで表示する場所 $form['msg_wrapper'] = array( '#type' => 'markup', '#markup' => "", '#prefix' => '<div id="msg-wrapper">', '#suffix' => '</div>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'test_sample_form_ajax_callback', 'wrapper' => 'msg-wrapper', 'effect' => 'fade', ), ); return $form; } /** * ajaxに呼び出される関数 */ function test_sample_form_ajax_callback($form, $form_state) { // 入力されたメッセージを指定した場所にセット $form['msg_wrapper']['#markup'] = '入力されたメッセージ:' . check_plain($form_state['values']['message']) ; // 置換する部品を返す return $form['msg_wrapper'] ; }
/** * Implementation of hook_menu() * 新規フォームを表示するページのメニュー設定 */ function my_module_name_menu() { $items['test/form'] = array( 'title' => 'Ajaxテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('my_sample_form'), 'access arguments' => array('access content'), ); } /** * フォームの各要素の記述 */ function my_sample_form($form, &$form_state){ // メッセージ入力フィールド $form['message'] = array( '#type' => 'textfield', '#title' => t('メッセージを入力'), ); // 入力されたメッセージをajaxで表示する場所 $form['msg_wrapper'] = array( '#type' => 'markup', '#markup' => "", '#prefix' => '<div id="msg-wrapper">', '#suffix' => '</div>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'test_sample_form_ajax_callback', 'wrapper' => 'msg-wrapper', 'effect' => 'fade', ), ); return $form; } /** * ajaxに呼び出される関数 */ function test_sample_form_ajax_callback($form, $form_state) { // 入力されたメッセージを指定した場所にセット $form['msg_wrapper']['#markup'] = '入力されたメッセージ:' . check_plain($form_state['values']['message']) ; // 置換する部品を返す return $form['msg_wrapper'] ; }
/** * Implementation of hook_menu() * 新規フォームを表示するページのメニュー設定 */ function my_module_name_menu() { $items['test/form'] = array( 'title' => 'Ajaxテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('my_sample_form'), 'access arguments' => array('access content'), ); } /** * フォームの各要素の記述 */ function my_sample_form($form, &$form_state){ // メッセージ入力フィールド $form['message'] = array( '#type' => 'textfield', '#title' => t('メッセージを入力'), ); // 入力されたメッセージをajaxで表示する場所 $form['msg_wrapper'] = array( '#type' => 'markup', '#markup' => "", '#prefix' => '<div id="msg-wrapper">', '#suffix' => '</div>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'test_sample_form_ajax_callback', 'wrapper' => 'msg-wrapper', 'effect' => 'fade', ), ); return $form; } /** * ajaxに呼び出される関数 */ function test_sample_form_ajax_callback($form, $form_state) { // 入力されたメッセージを指定した場所にセット $form['msg_wrapper']['#markup'] = '入力されたメッセージ:' . check_plain($form_state['values']['message']) ; // 置換する部品を返す return $form['msg_wrapper'] ; }
/** * Implementation of hook_menu() * 新規フォームを表示するページのメニュー設定 */ function my_module_name_menu() { $items['test/form'] = array( 'title' => 'Ajaxテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('my_sample_form'), 'access arguments' => array('access content'), ); } /** * フォームの各要素の記述 */ function my_sample_form($form, &$form_state){ // メッセージ入力フィールド $form['message'] = array( '#type' => 'textfield', '#title' => t('メッセージを入力'), ); // 入力されたメッセージをajaxで表示する場所 $form['msg_wrapper'] = array( '#type' => 'markup', '#markup' => "", '#prefix' => '<div id="msg-wrapper">', '#suffix' => '</div>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'test_sample_form_ajax_callback', 'wrapper' => 'msg-wrapper', 'effect' => 'fade', ), ); return $form; } /** * ajaxに呼び出される関数 */ function test_sample_form_ajax_callback($form, $form_state) { // 入力されたメッセージを指定した場所にセット $form['msg_wrapper']['#markup'] = '入力されたメッセージ:' . check_plain($form_state['values']['message']) ; // 置換する部品を返す return $form['msg_wrapper'] ; }
/** * Implementation of hook_menu() * 新規フォームを表示するページのメニュー設定 */ function my_module_name_menu() { $items['test/form'] = array( 'title' => 'Ajaxテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('my_sample_form'), 'access arguments' => array('access content'), ); } /** * フォームの各要素の記述 */ function my_sample_form($form, &$form_state){ // メッセージ入力フィールド $form['message'] = array( '#type' => 'textfield', '#title' => t('メッセージを入力'), ); // 入力されたメッセージをajaxで表示する場所 $form['msg_wrapper'] = array( '#type' => 'markup', '#markup' => "", '#prefix' => '<div id="msg-wrapper">', '#suffix' => '</div>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'test_sample_form_ajax_callback', 'wrapper' => 'msg-wrapper', 'effect' => 'fade', ), ); return $form; } /** * ajaxに呼び出される関数 */ function test_sample_form_ajax_callback($form, $form_state) { // 入力されたメッセージを指定した場所にセット $form['msg_wrapper']['#markup'] = '入力されたメッセージ:' . check_plain($form_state['values']['message']) ; // 置換する部品を返す return $form['msg_wrapper'] ; }
/** * Implementation of hook_menu() * 新規フォームを表示するページのメニュー設定 */ function my_module_name_menu() { $items['test/form'] = array( 'title' => 'Ajaxテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('my_sample_form'), 'access arguments' => array('access content'), ); } /** * フォームの各要素の記述 */ function my_sample_form($form, &$form_state){ // メッセージ入力フィールド $form['message'] = array( '#type' => 'textfield', '#title' => t('メッセージを入力'), ); // 入力されたメッセージをajaxで表示する場所 $form['msg_wrapper'] = array( '#type' => 'markup', '#markup' => "", '#prefix' => '<div id="msg-wrapper">', '#suffix' => '</div>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'test_sample_form_ajax_callback', 'wrapper' => 'msg-wrapper', 'effect' => 'fade', ), ); return $form; } /** * ajaxに呼び出される関数 */ function test_sample_form_ajax_callback($form, $form_state) { // 入力されたメッセージを指定した場所にセット $form['msg_wrapper']['#markup'] = '入力されたメッセージ:' . check_plain($form_state['values']['message']) ; // 置換する部品を返す return $form['msg_wrapper'] ; }
/** * Implementation of hook_menu() * 新規フォームを表示するページのメニュー設定 */ function my_module_name_menu() { $items['test/form'] = array( 'title' => 'Ajaxテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('my_sample_form'), 'access arguments' => array('access content'), ); } /** * フォームの各要素の記述 */ function my_sample_form($form, &$form_state){ // メッセージ入力フィールド $form['message'] = array( '#type' => 'textfield', '#title' => t('メッセージを入力'), ); // 入力されたメッセージをajaxで表示する場所 $form['msg_wrapper'] = array( '#type' => 'markup', '#markup' => "", '#prefix' => '<div id="msg-wrapper">', '#suffix' => '</div>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'test_sample_form_ajax_callback', 'wrapper' => 'msg-wrapper', 'effect' => 'fade', ), ); return $form; } /** * ajaxに呼び出される関数 */ function test_sample_form_ajax_callback($form, $form_state) { // 入力されたメッセージを指定した場所にセット $form['msg_wrapper']['#markup'] = '入力されたメッセージ:' . check_plain($form_state['values']['message']) ; // 置換する部品を返す return $form['msg_wrapper'] ; }
/** * Implementation of hook_menu() * 新規フォームを表示するページのメニュー設定 */ function my_module_name_menu() { $items['test/form'] = array( 'title' => 'Ajaxテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('my_sample_form'), 'access arguments' => array('access content'), ); } /** * フォームの各要素の記述 */ function my_sample_form($form, &$form_state){ // メッセージ入力フィールド $form['message'] = array( '#type' => 'textfield', '#title' => t('メッセージを入力'), ); // 入力されたメッセージをajaxで表示する場所 $form['msg_wrapper'] = array( '#type' => 'markup', '#markup' => "", '#prefix' => '<div id="msg-wrapper">', '#suffix' => '</div>', ); // サブミットボタン $form['submit'] = array( '#type' => 'submit', '#value' => '送信', '#ajax' => array( 'callback' => 'test_sample_form_ajax_callback', 'wrapper' => 'msg-wrapper', 'effect' => 'fade', ), ); return $form; } /** * ajaxに呼び出される関数 */ function test_sample_form_ajax_callback($form, $form_state) { // 入力されたメッセージを指定した場所にセット $form['msg_wrapper']['#markup'] = '入力されたメッセージ:' . check_plain($form_state['values']['message']) ; // 置換する部品を返す return $form['msg_wrapper'] ; }