[三流君] −−> [ASPで遊ぶ、失敗する] −−> [バックナンバー一覧]
−−> No.005 IsEmptyでデータチェック

IsEmptyでデータチェック


本文(発行内容)


<IsEmptyでデータチェック>

こんにちは、Ken3です。

前回、
ファームから値を受けとって処理を行いました。
今回は、
IsEmptyでデータの入力をチェックして、
未入力なら(初回の呼び出しなら)、
入力用のフォーム
入力済みなら(2回目の呼び出しなら)
結果の判断
と1つのASPで処理してみたいと思います。

/*
 * 1.仕様
*/
asp側の処理

始めての呼び出しだったら、
フォームを作成して、自分自身を呼び出すボタンを作成。
入力項目は
テキストボックスで
名前、
チェックボックスで、やりたいことをチェックさせ、
□HTMLから詳しく丁寧に
□VBScriptをもっと詳しく
□ゲーム作ろうよ
RADIOボタンで、満足度を選択。

フォーム入力後の2回目だったら、
単純にパラメーターの値を表示する
if文でチェックされた値を確認しメッセージ表示する

/*
 * 2.IsEmptyでデータチェック
*/

サンプルのソースを下記に載せます
http://www.ken3.org/cgi-bin/test/test005-1.asp
でテストできるので、確認してください。

<%@LANGUAGE=VBScript%>
<html>
<head>
<title>test IsEmptyでデータチェック</title>
</head>
<body>
<h2>IsEmptyでデータチェック  入力と処理を1つのASPで行う</h2>
test005-1.asp<br>
<%  '*1 頭で、入力パラメーターがあるかチェックする
    if IsEmpty(Request.Form("USER-NAME")) = True Then
        'そのまま下のHTMLを実行
%>
<br>
好きに入力して、送信ボタンを押してください。<br>
<FORM ACTION="test005-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>

<% 'データが入力されていたら、
    else
		'そのまま、テキストを表示する
		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>"
    end if   '長いIf文もここで終わり
%>

<HR>
終了です。なんか変だけど<br>

</body>
</html>

ポイントは、
if IsEmpty(Request.Form("USER-NAME")) = True Then
の部分です。

IsEmptyで変数が初期化されているかをチェックします。
Trueの時は、変数が生成されていないので、
1回目の呼び出しと判断して、
そのまま下のFORMタグの表示を行います。

さらに下の部分(次の<%)で、
<% 'データが入力されていたら、
    else
・
・
・
%>
で結果の判断処理を行ってます。

/*
 * 3.長いIf文は私はキライかなぁ、、、
*/

1つのASPで入力と結果の判断を行ってますが、
なんかIf文が長い。

前回のHTMLとASPにわかれているほうがスッキリしてるかも。
あと、自分でも半信半疑で行ったのですが、

<%  '*1 頭で、入力パラメーターがあるかチェックする
    if IsEmpty(Request.Form("USER-NAME")) = True Then
        'そのまま下のHTMLを実行
%>
・
・
・
・
<%
    else
・
・
・
    end if
%>

と、If文のブロックが分断されていても動作するのはチト、ビックリ。
だからわかりにくいって説も有るけど。

書き方としては、どうなんだろうねぇ。。。

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

で、今日は何が言いたかったの?
・IsEmptyでデータをチェックすることができます
・If文のブロックが分断されていても動作するのはチト、ビックリした。
こんな感じかな。

またね(笑)

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

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

フィードバック

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

評価・感想

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

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

三流君の主なリンク先

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

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

その他 宣伝広告