フォームを介さず、URLの末尾にパラメータを付与することも可能です。このURLの末尾に付与されるパラメータをGETパラメータ、またはクエリストリングと呼びます(参考)。
例えば、以下のようなURLがあるとします。この場合、「?」以降の部分がGETパラメータです。
http://localhost/●●●/item.php?max_price=1000&type=books
PHPでは、このGETパラメータを$_GETというスーパーグローバル変数で参照することができます。
上記URLの場合、$_GET[“max_price”] とすると1000 を参照することができ、$_GET[“type”] とすると books という文字列を参照することができます。
GETパラメータの送信と利用
GETパラメータを送信するためには、リンクにGETパラメータを仕込む方法と、フォームのmethod属性の値をgetに設定する方法があります (ただし、method属性の初期値はgetなので、明示的に設定する必要はありません)。
<!-- リンクにGETパラメータを仕込む方法 -->
<ul>
<li><a href="item.php?id=0">イチゴ</a></li>
<li><a href="item.php?id=1">メロン</a></li>
<li><a href="item.php?id=2">ブドウ</a></li>
</ul>
<!-- フォームのmethod属性をgetに設定する方法 -->
<form action="item.php" method="get">
<select name="id">
<option value="0">イチゴ</option>
<option value="1">メロン</option>
<option value="2">ブドウ</option>
</select>
<input type="submit" value="詳しく見る">
</form>
上記のリンク、またはフォームを通じて送信されるGETパラメータは、以下のように利用することができます。
<?php
// アイテムのリスト
$itemList = [
["name" => "イチゴ", "price" => 500, "place" => "栃木県"],
["name" => "メロン", "price" => 1300, "place" => "山形県"],
["name" => "ブドウ", "price" => 500, "place" => "山梨県"]
];
// GETパラメータ(クエリストリング)の取得
$id = $_GET["id"];
?>
<html>
<head>
<meta charset="utf-8">
<title><?php echo $itemList[$id]["name"] ?></title>
</head>
<body>
<h1><?php echo $itemList[$id]["name"] ?></h1>
<dl>
<dt>価格<dt><dd><?php echo $itemList[$id]["price"] ?>円</dd>
<dt>産地<dt><dd><?php echo $itemList[$id]["place"] ?>産</dd>
</dl>
</body>
</html>