【PHP】ページ遷移が伴うフォームの実装

ぜひ読んでほしい方

・サンクスページのように、遷移が伴うようなフォームにする必要がある。
・質問ページが複数にわたるようなフォームを作成したい。

全コード公開

↓↓index.php

↓form.php

functions.php

const.php

セッションを利用して実装

 index.phpの6行目にsession_start(); とある通り、セッションを利用することで複数ページにわたるフォームを作ることができます。

form.phpの解説

 今回のコードでは、form.phpファイルに2ページ両方とものコードを書いています。1ページ目のコードはif($page == 1)からの部分、2ページ目のコードは、elseif($page == 2)からの部分となっています。3ページ以上のフォームにしたい場合も同様に増やしていけばよいことになります。

index.phpの解説

 10行目のif($_POST[‘submit_1’])の部分は、「もし1ページ目の送信だったら」ということになります(form.phpの17行目参照)。同様に、($_POST[‘submit_2’])の部分は、「もし2ページ目の送信だったら」ということになります(form.phpの21行目参照)。

 1ページ目の送信時に、13~16行目で$_POST[]の値を、変数ではなく$_SESSION[]に格納しています。こうすることで、ページ遷移時のリロード後も格納した値を保持し続けることができます。