PHPで複数のsubmit(送信)ボタンから値を得るには?

複数のsubmit(送信)ボタンを設置したいときはよくあります。

たとえば年月日の入力項目があり、出力はhtml、PDF、CSVなどと振り分けたい場合などです。
image

これは次のようなhtmlとphpファイルを用意すれば可能です。

HTML

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title></title>
  </head>
  <body style="padding: 20px;">
    <form action="result.php" method="POST">
      年月日:<input type="text" name="day" value="2012/8/15"/><br />
      <input type="submit" name="format" value="HTML" />
      <input type="submit" name="format" value="CSV" />
      <input type="submit" name="format" value="PDF" />
    </form>
  </body>
</html>

ポイントはsubmitそれぞれのnameに同じ名前をつけ、
valueに取得したい値を入れることです。

PHP

PHPからは$_POSTで受け取ることができます。

day = <?php echo $_POST['day']; ?><br />
format = <?php echo $_POST['format']; ?>

上記コードを実行すると、

day = 2012/8/15
format = HTML

のような結果が得られます。