HTMLフォームでのポスト時の送信データ形式

このページのタグ:[HTML]
HTMLフォームからPOSTでデータを送信した際にサーバー側で受け取るデータのフォーマットを紹介します。

概要

HTMLフォームからPOSTでデータを送信した場合、以下のフォーマットになります。(inputフィールドのname)=(inputフィールドの値)を&でつなげた形式となります。空白や非ASCII文字(日本語など)はURLエンコードされて送信されます。
(inputフィールド1のname)=(inputフィールド1の値)&(inputフィールド2のname)=(inputフィールド2の値)&...

コード

PostForm.aspx


<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
  <form method="post" action="PostDest.aspx">
    <div>Value-01<input name="value01" type="text" /></div>
    <div>Value-02<input name="value02" type="text" /></div>
    <div>Value-03
      <select id="Select1" name="value03">
        <option>要素1</option>
        <option>要素2</option>
        <option>要素3</option>
        <option>要素4</option>
        <option>要素5</option>
      </select>
    </div>
    <div>Value-04<br/>
      <input id="Radio1" name="RadioGroup1" type="radio" /><label for="Radio1">ラジオボタン 要素1</label><br />
      <input id="Radio2" name="RadioGroup1" type="radio" /><label for="Radio2">ラジオボタン 要素2</label><br />
      <input id="Radio3" name="RadioGroup1" type="radio" /><label for="Radio3">ラジオボタン 要素3</label><br />
    </div>
    <div>Value-05<br />
      <input id="Chkbox1" name="checkbox1" type="checkbox" /><label for="Checkbox1">チェック項目1</label><br />
    </div>
    <div>Value-06<br />
      <input id="Hidden1" name="hiddenfield1" type="hidden" value="Test Value" /><br />
    </div>
    <input type="submit" value="POST" />
  </form>
</body>
</html>

解説

HTMLのFormタグによるフォームです。method="post" にすることでフォームのデータをPOSTします。 action="PostDest.aspx"により、POST先のURLを指定しています。指定をしなかった場合は同じURLに対してPOSTを実行します。

サーバー側

POSTされたデータを受け取り画面に表示するサーバー側です。今回はASP.NETで構築します。

コード

以下のコードを記述します。
PostDest.html

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PostDest.aspx.cs" Inherits="HtmlForm.PostDest" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </div>
    </form>
</body>
</html>
PostDest.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;

namespace HtmlForm
{
  public partial class PostDest : System.Web.UI.Page
  {
    protected void Page_Load(object sender, EventArgs e)
    {
      StreamReader reader = new StreamReader(Request.InputStream);
      string str = reader.ReadToEnd();
      reader.Close();

      Label1.Text = str;
    }
  }
}

解説

サーバー側のコード解説についてはこちらの記事を参照してください。

実行結果

HTMLファイルを表示します。下図の画面が表示されます。


テキストボックスや各フィールドに値を入力します。入力後[POST]ボタンをクリックします。


サーバーに送信されたPOSTデータが画面に表示されます。


上図の例の場合、値は以下となります。
value01=abc&value02=12345&value03=%E8%A6%81%E7%B4%A05&RadioGroup1=on&checkbox1=on&hiddenfield1=Test+Value
登録日 :2014-02-28    最終更新日 :2014-03-01
このページのタグ:[HTML]
Japanese
プライバシー    iPentecについて
iPentec all rights reserverd. (ISDC)