<フォームから値を受け取りたい> こんにちは、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でした。
ここまで、読んでいただきどうもです。目的の情報が見つかったか?少々心配しつつ、、、
感想や質問・要望・苦情など 三流君へメッセージを送る。
下記のフォームからメッセージを送ることができます。
[三流君(TOP ken3.org へ戻る)]
/ [ASPで遊ぶ、失敗する]
/ [ASP記事 バックナンバー目次]
まぁ、基本はデータの受け取りかなぁ。
・[Form等を使用したデータのやり取り]・・・ASPと言っても、HTMLの入力フォームからデータを受け取ります。POSTやGETでやりとりを押さえますか。
次は、データの入出力 で ADOを使った(ADOで接続) と SQLの解説を少々
・[ADOでMdbファイルを使う]・・・MDBと接続して、簡単な追加・更新・削除を行った。
・[ADOでExcelと接続してみた]・・・.xlsと接続してSQLを使ってみた。
・[ADOでCSVと接続してみた]・・・.CSV テキストを読み出した。※更新・削除はできません
広告:
DBが使えるので、あまり使用しないけど、普通のテキストファイル処理
・[テキストファイル処理]・・・ファイルを開いて、書き込む。1行読み込みなどを軽く
VBScriptでFormat関数が無いなど、微妙にVBAと違うけど
[VBScript関数関係の説明]・・・少し、処理を書いてみた。
[その他処理サンプル]・・・あまり良いサンプル作れなかったけど。。。
何かの参考となれば幸いです。
[三流君(TOP ken3.org へ戻る)]
/ [ASPで遊ぶ、失敗する]
/ [ASP記事 バックナンバー目次]