別のページに移動するフォーム 2
別のフォームを作成する
次に、登録結果を表示するフォームを作成します。ここでは、データを実際に登録することはしませんが、受け取ったデータを画面に表示します。
メインメニューから、「File」-「New」-「Form」を選択してフォームを作成します。作成したフォームには、次のようにコンポーネントを配置します。
プロパティを以下のように設定します。
プロパティ | 値 |
Caption | 登録結果 |
Encoding | Unicode(UTF-8) |
Name | ResultForm |
プロパティ | 値 |
Caption | 登録結果 |
Font.Size | 16 |
Font.Weight | bold |
プロパティ | 値 |
Name | lblName |
プロパティ | 値 |
Name | lblEmail |
出来上がったフォームのデザインは以下のとおりです。
「File」-「Save As」メニューを実行し、このフォームを「resultform.php」という名前で保存します。
フォーム間でのデータのやりとり
通常は、入力フォームのOnClickイベントですぐにデータを登録してしまうかもしれません。しかし、そのデータを次のフォームに引継ぎ、確認を求めたり次のステップの入力を促したりするかもしれません。
ここでは、入力フォームregform.phpに戻って入力したデータを共有できるようにし、結果フォームを呼び出すコードを記述します。
設計画面でbtnSubmitを選択し、Object InspectorのOnClickイベントの値列をダブルクリックします。表示されたコードに以下を記述します(太字箇所)。
function btnSubmitClick($sender, $params) { $_SESSION['name'] = $this->edtName->Text; $_SESSION['email'] = $this->edtEmail->Text; redirect("resultform.php"); }
入力した情報はセッションに格納することで、別のフォームで共有することができます。最初の2行がセッションにデータを格納するコードです。redirectメソッドを使って、結果を表示するフォームを呼び出しています。
結果を表示するフォームの側では、セッションから情報を取り出し、ラベルに表示します。結果フォームresultform.phpを表示して、設計画面でフォーム全体ResultFormを選択します。Object InspectorでOnShowイベントを選択し、値列をダブルクリックします。
表示されたコードに、以下のように記述します(太字箇所)。
function ResultFormShow($sender, $params) { $this->lblName->Caption = '名前は ' . $_SESSION['name'] . ' です'; $this->lblEmail->Caption = 'メールアドレスは ' . $_SESSION['email'] . ' です'; }
以上でラベルに入力された情報を表示できます。プログラムを実行してみましょう。