/**
* メニューで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'] ;
}