3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【PHP】フォームのGETとPOST ちょっとしたformを作成してみた

Last updated at Posted at 2023-08-17

GETとPOSTについてこんなツイートをしましたが、もう少し詳しく説明するために記事を作成しました。

手順

ファイルの作成

まずは [ formフォルダ ] を作成してその中に [ input.phpファイル ] を作成してください。

form
  |--> input.php

HTMLを書く

ファイルが作成できたら [ input.php ] にHTMLを書いていきます。

input.php

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

    <form method="GET" action="input.php">

        氏名
        <input type="text" name="name">

        <br>

        言語
        <input type="checkbox" name="language[]" value="PHP">PHP
        <input type="checkbox" name="language[]" value="Java">Java
        <input type="checkbox" name="language[]" value="Python">Python

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

    </form>

</body>
</html>

<form>の解説

フォームを作成する時は、<form></form>タグで囲ってあげる必要があります。

method=””にはGETPOSTの2種類どちらかが入ります。

action=””の中身は処理をした後の遷移画面のファイルを書いてあげます。

例えば

action=”input.php”だとしたら送信ボタンを押下した後[ input.phpファイル ] に遷移します。

action=”../index.php”だとしたら送信ボタンを押下した後 [ index.phpファイル ] に遷移します。

氏名<input>の解説

type=”text”typeの中にtextを入れてあげると文字が入力できます。

name=”name” inputには名前を付ける事ができて今回は氏名なのでnameにしています。使い方は後程

言語<input>の解説

type="checkbox" としてあげて複数並べてあげるとチェックボックスを作成できます。

name="language[]" []をつけてあげることで複数のチェックボックスを作成できます。

value="" の中に渡したい値を入れてあげます。

<input 送信>の解説

type=”submit” としてあげると送信ボタンを作る事ができます。

value=”送信” valueの中に書いた文字がボタンの中に表示される文字です。

ブラウザの確認

一旦HTMLの確認をしたいのでブラウザを開いて表示を確認してみてください。

以下のように表示されていればOKです。

20230817_01.png

実際に上の氏名と言語を埋めて送信してみてください。

何も動作はしないのですが、URLをよく見ると

[?name=test&language%5B%5D=Java&language%5B%5D=Python]

のように表示されていると思います。

これはformに入力した値がURLに出てくるのがGETの特徴です。

URLにでてこないのがPOSTの特徴です。

ちなみに[?]の後に書かれている値をクエリーなどと呼ぶこともあります。

methodの中身がどうなっているか

method="GET" の中身がどうなっているかを確認していく処理を記述していきます。

input.php

<?php

if(!empty($_GET)){
    echo '<pre>';
        var_dump($_GET);
    echo '</pre>';
}

?>

<!DOCTYPE html>
・・・以下略

<!DOCTYPE html> の上にphpを書いていきます。

var_dump($_GET);

GET通信を見るには $__GET としてあげれば見ることができます。

ちなみに $__ で書かれているものはスーパーグローバル変数と言います。phpの場合は9種類あります。スーパーグローバル変数は連想配列になっているので覚えておきましょう。

echo '<pre>'var_dump() のままだと見ずらいのでpreで縦に並べています。

if(!empty($_GET)){

if文を定義しないとエラーがでるのでif文を付けてあげています。

!empty は空では無かったらという意味

ブラウザの確認

ブラウザの確認をしましょう。以下のように表示されていれば問題ないです!

20230817_03.png

3
0
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
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?