HTMLフォームからPOSTでデータを送信した際にサーバー側で受け取るデータのフォーマットを紹介します。
HTMLフォームからPOSTでデータを送信した場合、以下のフォーマットになります。(inputフィールドのname)=(inputフィールドの値)を&でつなげた形式となります。空白や非ASCII文字(日本語など)はURLエンコードされて送信されます。
<!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で構築します。
以下のコードを記述します。
<%@ 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>
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データが画面に表示されます。
上図の例の場合、値は以下となります。