[三流君] −−> [ASPで遊ぶ、失敗する] −−> [バックナンバー一覧]
−−> No.004 フォームから値を受け取りたい

フォームから値を受け取りたい


本文(発行内容)


<フォームから値を受け取りたい>


こんにちは、Ken3です。

今回は、
ファームから値を受けとって処理をしてみます。

/*
 * 1.仕様
*/
html側の処理
フォームを作成して、ASPファイルを呼び出す
入力項目は

テキストボックスで
名前、

チェックボックスで、やりたいことをチェックさせ、
□HTMLから詳しく丁寧に
□VBScriptをもっと詳しく
□ゲーム作ろうよ

RADIOボタンで、満足度を選択。

ASP側の処理
単純にパラメーターの値を表示する
if文でチェックされた値を確認しメッセージ表示する

/*
 * 2.まず、HTMLのフォームを作るか
*/

サンプルのソースを下記に載せます
HTMLなのでローカルにメモ帳で作成してもいいです。
http://www.ken3.org/cgi-bin/test/test004-1.html
でテストできるので、確認してください。

<html>
<head>
<title>test</title>
</head>
<body>
<h2>フォームに値を入力してASPファイルに渡す</h2>
<br>
好きに入力して、送信ボタンを押してください。<br>
<FORM ACTION="http://www.ken3.org/cgi-bin/test/test004-1.asp" METHOD="POST">

お名前:
<INPUT TYPE="text" SIZE="20" NAME="USER-NAME" VALUE="匿名希望">
<br>
<br>
このメルマガでやってほしいことにチェックを入れてください<br>
<INPUT TYPE="CHECKBOX" NAME="c_1" VALUE="on">HTMLから詳しく丁寧に<BR>
<INPUT TYPE="CHECKBOX" NAME="c_2" VALUE="on">VBScriptをもっと詳しく<BR>
<INPUT TYPE="CHECKBOX" NAME="c_3" VALUE="on">ゲーム作ろうよ<BR>
<br>
このメルマガの満足度を5段階で<br>
不満 ------ 満足<br>
1<INPUT TYPE="RADIO" NAME="q_5" VALUE="1">
2<INPUT TYPE="RADIO" NAME="q_5" VALUE="2">
3<INPUT TYPE="RADIO" NAME="q_5" VALUE="3">
4<INPUT TYPE="RADIO" NAME="q_5" VALUE="4">
5<INPUT TYPE="RADIO" NAME="q_5" VALUE="5">
<br>
<br>
<br>
<INPUT TYPE="submit" VALUE="送 信">
<INPUT TYPE="reset"  VALUE="入力し直す">

</FORM>

</body>
</html>

ポイントは、
<FORM ACTION="http://www.ken3.org/cgi-bin/test/test004-1.asp" METHOD="POST">
のACTION=Urlで、フォームの値を渡すASPを設定します。

あとは、みたままなのですが、
<INPUT TYPE="text" SIZE="20" NAME="USER-NAME" VALUE="匿名希望">
でテキスト入力エリアを作成。

<INPUT TYPE="CHECKBOX" NAME="c_1" VALUE="on">HTMLから詳しく丁寧に<BR>
は□のチェックボックス。

1<INPUT TYPE="RADIO" NAME="q_5" VALUE="1">
2<INPUT TYPE="RADIO" NAME="q_5" VALUE="2">
3<INPUT TYPE="RADIO" NAME="q_5" VALUE="3">
4<INPUT TYPE="RADIO" NAME="q_5" VALUE="4">
5<INPUT TYPE="RADIO" NAME="q_5" VALUE="5">
は項目選択のラジオボタン

<INPUT TYPE="submit" VALUE="送 信">
で、このボタンが押されると、
<FORM ACTION="url"←を呼び出します。

<INPUT TYPE="reset"  VALUE="入力し直す">
はクリアのボタンで、入力値が消えます。

これは、HTMLのソースなので、
アンケート処理などを行っているWebシステムを探りに行って、
ソースの表示などでHTMLソースを表示して、
パクッテ(勉強して)テクを盗みましょう(参考とさせてもらいましょう)

/*
 * 3.ASPでフォームの値を受け取り処理を行う
*/

受け取りの基本は簡単で、
Request.Form("フォームの項目名")
で受け取れます。

<INPUT TYPE="text" SIZE="20" NAME="USER-NAME" VALUE="匿名希望">
                             ^^^^^^^^^^^^^^^
NAME="USER-NAME" なので、
受け取る時は(使用する場合は)
Request.Form("USER-NAME")
で値を参照できます。

下記にサンプルのソースを載せます。

<%@LANGUAGE=VBScript%>
<html>
<head><title>三流君 ASPで遊ぶ、失敗する No.004</title></head>
<body bgcolor="#ffffff">
test004-1.asp フォームから値を受け取る<br><hr>
<%
	'そのまま、テキストを表示する
	Response.Write Request.Form("USER-NAME")
	Response.Write "さん、入力どうもです。<br>"

	'チェックボックスonの時メッセージを表示する
	if Request.Form("c_1") = "on" then
		Response.Write "HTMLかぁ、ニガテなんだよね<br>"
	end if
	if Request.Form("c_2") = "on" then
		Response.Write "VBScript、まぁ一歩一歩やりましょうよ<br>"
	end if
	if Request.Form("c_3") = "on" then
		Response.Write "えっ、ゲーム作成?ムリムリ<br>"
	end if

	'RADIOボタン、中身表示と値を判断してメッセージ表示
	Response.Write "満足度は"
	Response.Write Request.Form("q_5")
	Response.Write "かぁ、、、"
	if Request.Form("q_5") <= 2 then  '2以下は不満にする
		Response.Write "不満かぁ、がんばらないと"
	end if
	if Request.Form("q_5") >= 4 then  '4以上満足なら
		Response.Write "よかったぁ〜一安心"
	end if
	Response.Write "<br>"
%>
<br>
<HR>
終了で。うまく値がわたりましたか?<br>
</body></html>

ポイントも得に無く、
ダラダラと
Response.Write でブラウザーに表示(ソースを返してます)

if 文で少し分岐させてみました。
if Request.Form("c_1") = "on" then
とやっているのは、
送り側のhtml側で
<INPUT TYPE="CHECKBOX" NAME="c_1" VALUE="on">HTMLから詳しく丁寧に<BR>
上記 NAME="c_1"です、チェックされた時はVALUE="on"文字列のonですよ
と指定してるので、チェックの有無を= "on" で判断してます。

1<INPUT TYPE="RADIO" NAME="q_5" VALUE="1">
2<INPUT TYPE="RADIO" NAME="q_5" VALUE="2">
3<INPUT TYPE="RADIO" NAME="q_5" VALUE="3">
4<INPUT TYPE="RADIO" NAME="q_5" VALUE="4">
5<INPUT TYPE="RADIO" NAME="q_5" VALUE="5">
は、ラジオボタンの選択なので、
q_5の項目名が1つです。

受け取るのは、1〜5の値なので、
if Request.Form("q_5") <= 2 then  '2以下は不満にする
など、少し遊んでみました。

/*
 * 4.流れ
*/
http://www.ken3.org/cgi-bin/test/test004-1.html
の
HTMLで<From>タグを使用して、入力フォームを作る、

送信ボタン(submit)が押されたら
ACTION="http://www.ken3.org/cgi-bin/test/test004-1.asp"
指定のurlを呼び出す。
(フォームの値を渡す)

あとは、渡された値を使用して、
test004-1.asp
内で、処理を行う。

今回は、簡単な表示だけだったけど、
通常は、データの検索やデータをファイル/DBに登録など、
データの操作のアクションが書かれると、
HTMLのリンクの紙芝居じゃなく、
おっ、サーバーで動いてるなぁと感じられると思います。

/*
 * 5.終わりの挨拶
*/

で、今日は何が言いたかったの?
・フォームの作り方を簡単にやった
・ASPで値の受け取り方を少々
こんな感じかな。

またね(笑)

何か質問があったら、気軽に、
メール、掲示板に書き込んでくださいね。

三流プログラマーのKen3でした。

フィードバック

ASP系の→[掲示板]←を覗く、質問を書き込む

評価・感想

No.004を読んだ満足度(評価)は?
5満足(参考になった)
4まぁまぁ(一部参考になった)
3普通(どちらとも言えない)
2なんかなぁ(期待と違った)
1不満(読んで損した気分)
作者に感想・質問を送る場合は下記に気軽に書いてください
あなたのお名前(ニックネーム) さん

作者からの返信は、 不用 E-mail で受信したい
*質問・感想はメルマガで紹介する場合があります

三流君の主なリンク先

[アクセスランキング] [サイトマップ] [リンク先・相互リンク先など]
ASPで遊ぶ、失敗する 掲示板 バックナンバー 登録と解除
三流プログラマー 業務の愚痴 掲示板 バックナンバー 登録と解除
VBAで楽しくプログラミング 掲示板 バックナンバー 登録と解除
コンビニのオモテとウラ話 掲示板 バックナンバー 登録と解除
www.ken3.org(サイト内)から Google を利用して、

Ken3の日記(weblog) -- [広告・副収入系] [プログラマー業務の愚痴] [VBA系の話題] [ASP系の話題] [コンビニ系ネタ] [その他]

その他 宣伝広告