HTMLフォームからGETで送信されたデータは、入力されたフォーム部品のname属性と共にWebブラウザのアドレス欄に表示されます。ある意味で1つのURLとしてデータが送信されるわけです。この時、そのURLは次のような構成になっています。
ファイル名?データ1=値&データ2=値&データ3=値…
「ファイル名」は<form>タグのaction属性に指定されたデータ送信先のファイル名です。「?」はPHPファイルに渡されたパラメータ(フォームでの入力データ)です。各パラメータは「データ名=値」を1セットとして、「&」で区切られています。「データ名」はそれぞれのフォーム部品のname属性、「値」はフォームでの入力値です。
このGETの特性を利用すると、パラメータを含むURLを<a>タグのリンク先に記述しておくことによって、あらかじめ決められたデータ値をPHPファイルに送信することができます。この例では、「"receive.php?data1=10&data2=20&data3=ABCD"」のようなリンク先をHTMLファイルに記述することによって、data1、data2、data3の3つのデータをreceive.phpに渡しています。それぞれの<a>タグごとに渡すデータ値を変えています。もちろん、受け取り側のスクリプトでは、通常のHTMLフォームからのGETによるデータ受け取りと同じように処理を記述できます。
POSTでフォームのデータを渡す場合には、そのデータはアドレス欄には表示されません。画面上、入力されたデータを秘匿することができますが、<a>タグを使ってデータを渡すことはできません。
<!DOCTYPE HTML> <html lang="ja-JP"> <head> <meta charset="UTF-8"> <title></title> </head> <body> 好きなリンクをクリックしてください。 <ul> <li><a href="receive.php?data1=10&data2=20&data3=ABCD">10と20とABCD</a></li> <br><br> <li><a href="receive.php?data1=20&data2=80&data3=EFGH">20と80とEFGH</a></li> <br><br> <li><a href="receive.php?data1=88&data2=99&data3=WXYZ">88と99とWXYZ</a></li> <br><br> </ul> </body> </html>
<?php header("Content-type: text/html; charset=utf-8"); echo "受け取ったデータは<br>"; echo "data1→" . $_GET["data1"] . "<br>"; echo "data2→" . $_GET["data2"] . "<br>"; echo "data3→" . $_GET["data3"] . "<br>"; ?>