LoginSignup
2
1

More than 1 year has passed since last update.

PHPのフォーム作成

Posted at

PHPのフォーム作成

PHPで簡単にフォームを作っていきます。

index.php
<!DOCTYPE html>
<meta charset = "utf-8">

<head></head>

<body>
<form method = "GET" action="input2.php">
    氏名
<input type = "text" placeholder = "名前を入力 "name = "name"> //placeholderは下の薄い灰色のテキスト
<input type = "submit" value = "送信"> //送信部分 
</form>

</body>
</html>

これを使うと

スクリーンショット 2022-05-06 14.29.05.png

⚫︎form methodデータの送信方法を指定します。データの送信方法(HTTPメソッド)を指定する時に指定し
以下の2種類が指定されます。

GET 送信内容がURLとして渡される(初期値)
POST 本文として送信される

form action送信先のURLを指定します。
注意点としてinputタグやbuttonタグで作成されるサブミットボタンに
formactionが指定されている場合には、formactionが優先されるみたいです。

⚫︎name属性はフォームに名前をつける時に使います。

⚫︎placeholderは上の薄い灰色のテキストです。

⚫︎input typeフォームの入力欄を作成します。

スーパーグローバル変数

index.phpの上にこのような記述をします。

index.php
<?php
if(isset($_GET['name'])){ //nameが入っていたなら
 echo $_GET['name'];
}
 //GET通信を見る
 //スーパーグローバル変数 phpは9種類
?>

スクリーンショット 2022-05-06 18.13.49.png

スーパーグローバル変数と言ってphpは9種類あるみたいで
関数の外で定義し、定義するとプログラムが終了するまで、どこでも参照・変更が可能になるみたいです。
今回のスーパーグローバル変数は$_GETです。
issetの文はもしnameが入っていたらという意味です。!emptyでも同じ意味で使えます。

ちなみにデバックでddを入れたらエラーでしたが、var_dumpで中身が見れました。

チェックボックスを入れてみる

チェックボックスを入れて作って見ました。

index.php
<?php
if(isset($_GET['name'])){ //nameが入っていたなら
 echo $_GET['name'];
 //echo '<pre>';
 //var_dump($_GET);
}
?>

<!DOCTYPE html>
<meta charset = "utf-8">

<head></head>

<body>
<form method = "GET" action="index.php">
    氏名
<input type="text" placeholder="名前を入力" name="name">
 <pre>
<input type="checkbox" name="nation[]" value="日本">日本
<input type="checkbox" name="nation[]" value="中国">中国
<input type="checkbox" name="nation[]" value="アメリカ">アメリカ

<input type = "submit" value = "送信" >
</form>

</body>
</html>

スクリーンショット 2022-05-06 18.42.29.png

input type="checkbox"でチェックボックスを作成できます。

echo $_GET['name'];

をechoをvar_dump($変数)で調べてみると中身がわかります。

index.php
<?php
if(isset($_GET['name'])){ //nameが入っていたなら
 //echo $_GET['name'];
 echo '<pre>';
 var_dump($_GET);
}
?>

これで試してみると中身が見れます。

$_GETから$_POSTにしてみる

スーパーグローバル変数で$_POSTは他に見られたくない情報をURLで見られないようにします。

index.php
<?php
if(isset($_POST['name'])){ //nameが入っていたなら
 //echo $_POST['name'];
 echo '<pre>';
 var_dump($_POST);
}
 //GET通信を見る
 //スーパーグローバル変数 phpは9種類
?>

<!DOCTYPE html>
<meta charset = "utf-8">

<head></head>

<body>
<form method = "GET" action="index.php">
    氏名
<input type="text" placeholder="名前を入力" name="name">
 <pre>
<input type="checkbox" name="nation[]" value="日本">日本
<input type="checkbox" name="nation[]" value="中国">中国
<input type="checkbox" name="nation[]" value="アメリカ">アメリカ

<input type = "submit" value = "送信" >
</form>

</body>
</html>

スクリーンショット 2022-05-06 18.57.27.png

名前に孫と入力し、国を中国にして送信しました。

入力、確認、完了フォーム作成

入力、確認、完了フォームを作成します。
入力をinput.php、確認をconfirm.php、完了をthanks.phpとします。

index.php
<?php
$pageFlag = 0;  //ページ遷移の変数

if(!empty($_POST["btn_confirm"])){ //確認画面
   $pageFlag = 1;
}
if(!empty($_POST["btn_submit"])){  //完了画面
    $pageFlag = 2;
 }
?>

<!DOCTYPE html>
<meta charset = "utf-8">

<head></head>

<body>

<?php if($pageFlag === 1 ) :?>
<form method = "POST" action="index.php">
    <pre>
    氏名
<?php echo $_POST["name"] ;?>
 <pre>
    メールアドレス
<?php echo $_POST["email"] ;?> 

<pre>
    パスワード
<?php echo $_POST["password"] ;?> 
<pre>

<input type = "submit" name = "back" value = "戻る">  #戻るボタン
<input type = "submit" name = "btn_submit" value = "送信" >
<input type = "hidden" name = "name" value = "<?php echo $_POST["name"] ;?>">
<input type = "hidden" name = "email" value = "<?php echo $_POST["email"] ;?>">
<input type = "hidden" name = "password" value = "<?php echo $_POST["password"] ;?>">
</form>
<?php endif; ?>


<?php if($pageFlag === 2 ) :?>
送信が完了しました。
<?php endif; ?>


<?php if($pageFlag === 0 ) :?>
<form method = "POST" action="index.php">
<br>
    氏名
<input type="text" placeholder="名前を入力" name="name" value ="<?php if(!empty($_POST["name"])){echo $_POST["name"];}?>">
 <br>
    メールアドレス
<br><input type = "email" placeholder = "メールアドレスを入力" name ="email" value ="<?php if(!empty($_POST["email"])){echo $_POST["name"];}?>">
<br>
    パスワード
<input type = "password"  placeholder = "パスワードを入力" name = "password" value ="<?php if(!empty($_POST["password"])){echo $_POST["email"];}?>">
<br>
<input type = "submit" name = "btn_confirm"  value = "確認" >
</form>
<?php endif; ?> 


</body>
</html>

⚫︎入力画面
スクリーンショット 2022-05-08 18.07.02.png

⚫︎確認画面
スクリーンショット 2022-05-08 18.08.01.png

⚫︎送信した完了画面
スクリーンショット 2022-05-08 18.08.20.png

参考資料

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1