●概要
フォーム入力処理において、
・フォーム入力が正常に行われた際に表示するページ
・フォーム入力がエラー(未入力など)の際に表示するページ
を切り替える際、エラー理由などのパラメータを次ページに渡す方法
●入力画面
コントローラ:
// 拡販パートナー用の初回登録画面(お名前とお名前フリガナを入力する)入力画面
public function first_time_registration_for_partners_input_name() {
$this->set("title_for_layout","拡販パートナー様 - 新規登録 - お名前入力");
} // end of function
ビュー: ファイル名 first_time_registration_for_partners_input_name.ctp
<h1>名前を登録する</h1>
<p>本名をフルネームで入力してください</p>
<?php echo $this->Form->create(false,array('type'=>'post','action'=>'./first_time_registration_for_partners_input_name_confirm')); /* CakePHP ver2.1 以降では、null ではなく false を設定する。*/ ?>
<h1>お名前</h1><?php echo $this->Form->text('name'); ?>
<br/><br/><p>例)大和 賢一郎</p><hr><br/><br/>
<h1>お名前ふりがな</h1><?php echo $this->Form->text('name_kana'); ?>
<br/><br/><p>例)やまと けんいちろう</p><hr><br/><br/>
<?php echo $this->Form->end(" 確認画面へ進む "); ?>
●入力完了(正常)画面
コントローラ:
// 拡販パートナー用の初回登録画面(お名前とお名前フリガナを入力する)確認処理
public function first_time_registration_for_partners_input_name_confirm(){
$partner_id = "12345";
$name = $this -> data["name"]; // お名前
$name = strip_tags($name); // HTMLタグを除外する
$this -> set("name", Sanitize::stripAll($name));
$name_kana = $this -> data["name_kana"]; // お名前フリガナ
$name_kana = strip_tags($name_kana); // HTMLタグを除外する
$this -> set("name_kana", Sanitize::stripAll($name_kana));
$reason_for_error = ""; // エラー理由
$is_error = false; // エラー発生時は true を設定する。
if($name == null){
$is_error = true;
$reason_for_error .= "お名前が入力されていません。";
}
if($name_kana == null){
$is_error = true;
$reason_for_error .= "お名前ふりがなが入力されていません。";
}
if($is_error){
$this->redirect("./first_time_registration_for_partners_input_name_error/" . "$reason_for_error/" . "$partner_id/");
}
} //end of function
ビュー: ファイル名 first_time_registration_for_partners_input_name_confirm.ctp
<h1>I am first_time_registration_for_partners_input_name_confirm.ctp</h1>
<p>text1: <?php echo $name; ?></p>
<p>text2: <?php echo $name_kana; ?></p>
●入力エラー画面
コントローラ:
// 拡販パートナー用の初回登録画面(お名前とお名前フリガナを入力する)入力画面でエラー発生時に表示する画面
public function first_time_registration_for_partners_input_name_error($reason_for_error,$partner_id) {
$this->set("title_for_layout","拡販パートナー様 - 新規登録 - お名前入力 - エラー");
$this->set("reason_for_error",$reason_for_error);
$this->set("partner_id",$partner_id);
} // end of function
ビュー: ファイル名 first_time_registration_for_partners_input_name_error.ctp
<?php echo $partner_id; ?>
<?php echo $reason_for_error; ?>
<h1>エラーが発生しました。i am first_time_registration_for_partners_input_name_confirm_error.ctp</h1>
<a href="./first_time_registration_for_partners_input_name">再入力する</a>
●解説
確認処理において、入力値がnullかどうかを調べ、nullの場合はエラー処理にリダイレクトさせている。
その際、エラー理由と、パラメータ(この例では$partner_id)を同時に渡している。
受け取ったエラー処理側では、受け取った値を $thisにsetして、ビューで表示させている。
表示例
ブロマガ会員ならもっと楽しめる!
- 会員限定の新着記事が読み放題!※1
- 動画や生放送などの追加コンテンツが見放題!※2
-
- ※1、入会月以降の記事が対象になります。
- ※2、チャンネルによって、見放題になるコンテンツは異なります。
東京ウェブ制作ブロマガ
大和賢一郎
月額:¥550 (税込)
コメント
コメントはまだありません
コメントを書き込むにはログインしてください。