基本構成

ASPは、IISで動作します。今となっては古い仕組みですが、まれに使います。基本的に1ファイル(.asp)=1アクション単位となります。 私は業務画面の構成によりますが、大体は1画面を3構成(ヘッダ部、ボディ部、フッタ部)で3ファイルにわけて構成し、統括する親ページからフレームで指定しています。


VBScriptで記述されたスクリプトはサーバ側で処理され、その結果をHTMLとしてブラウザ側に送信することで、画面が表示されます。環境としてもIISがあれば基本動作できますし、開発も専用のエディタがなくとも、テキストベースで十分開発できますので、スクリプトの基本がわかれば、難易度が低い仕組みだと思います。
今回はJavaScript もクライアント(ブラウザ)サイドの処理として利用します。1ファイルの中で、サーバサイド処理、ブラウザに表示するHTML、ブラウザのアクションを制御するJavaScriptを記載しますので、JSPやASPに慣れていない場合は複雑に見えるかもしれません。

  • サーバサイド処理

サーバ側で動作する処理は、<%~%>の間に記載します。基本的にサーバサイド側の処理はVBScriptでプログラミングしますので、その定義を行います。JavaScriptをサーバサイドにする事もできますが私はVBScriptとしています。この場合は、「 JSCRIPT 」を定義します。

<%@  LANGUAGE="VBScript" %>
<%  Option Explicit %>
<%
    '変数定義
    Dim test1
    Dim test2
%>
<%
Response.Write "Hello World!!"
Response.Redirect "./test2.asp"
%>

上記の、1行目がサーバサイドスクリプトの定義、2行目は、変数宣言をしますよというVBでは定番のおまじないです。3行目以降は、VBScriptを記載します。

VBScript(サーバ処理)を行い、その処理に応じてHTMLを生成するには、Response.Writeを使います。上記の場合は、ブラウザ側に「Hello World!!」が表示されます。また、リダイレクトで別のページにサーバ側で遷移したい場合は、Response.Redirectを使います。

私は、上記Response.Writeはあまり使いません。VBScriptはサーバ側でDBアクセスし、HTMLを構成する為に必要な処理を記述し、返却されるHTMLは、下記のように動的にHTMLが作成されるように記載している為です。画面遷移については主に処理の判定等で異常となった場合に、エラーページに飛ばす等に利用しています。

  • クライアント(ブラウザ)サイド処理

上記のサーバサイド処理と同一ファイル(asp)に表示されるべきHTMLとブラウザ側の制御を行うJavaScriptを記載しています。

<%@  LANGUAGE="VBScript" %>
<%  Option Explicit %>
<%
    '変数定義
    Dim test1

    test1 = "TEST内容"
%>
<SCRIPT language="JavaScript">
<!--
    // ボタン押下処理
    function btn_click() {
        alert("ボタン押下");
    }
// -->
</SCRIPT>
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html;charset=Shift_JIS">
<TITLE>テスト</TITLE>
</HEAD>
<BODY>
    <INPUT type="button" name="btnTest" value="実行" onclick="btn_click()">
    <INPUT TYPE="hidden" name="TEST" value="<%=test1%>">
</BODY>
</HTML>

上記では、VBScriptで記載されたサーバサイド処理が実行され、変数test1に編集された内容が、HTMLのInput(hidden)のTESTのvalueに編集された状態で、ブラウザ側に生成されたHTMLが返却されます。その後、ブラウザで、button(実行)を押下する事で、JavaScriptで記載されたfunctionのbtn_clickがコールされ処理されます。

Leave a Reply

Your email address will not be published. Required fields are marked *