特定のASPページの入力情報(HTML)を、フォームタグを使って別の画面(aspページ)にPOSTする際のパラメータの受け渡しと、別Windowとして画面呼び出しする際のURLパラメタの受け渡し方法について記載します。
- POSTによるパラメタ受け渡し
■test1.asp
<form action="test2.asp" method="post" name="TestForm">
<input type="text" name="item">
<input type="submit" value="実行">
</form>
■test2.asp
<%
Dim test
test = Response.Form("item")
%>
上記のitemという項目にブラウザより値を入力し、実行ボタンを押下すると、formタグに指定されたactionのtest2.aspがコールされパラメタがPOSTされます。test2.asp側では、Response.Formで項目名を指定する事で、その内容を取得することができます。
- URLパラメタ受け渡し
■test1.asp
<%@ LANGUAGE="VBScript" %>
<% Option Explicit %>
<%
'変数定義
Dim test1
test1 = "TEST内容"
%>
<SCRIPT language="JavaScript">
<!--
// ボタン押下処理
function btn_click() {
// 別ウィンドウを表示(URLパラメタ指定)
var myform = document.forms[0];
// URLパラメタ指定
para = "TEST=100";
para = para + "&TEST2=" + myform("item").value;
// 別ウィンドウをOPENする。
var wx = 600;
var wy = 300;
var x = (screen.width - wx) / 2;
var y = (screen.height - wy) / 2;
var sw=window.open("","sw","left="+x+",top="+y+",width="+wx+",height="+wy + ",toolbar=no,location=no,deirectories=no,status=no,menubar=no,scrollbars=no,resizable=no");
sw.focus();
// フォームのtargetにOPENした別ウィンドウを指定
document.forms[0].target="sw";
// フォームのactionに対象ASPとURLパラメタを指定
document.forms[0].action="test2.asp?" + para;
}
// -->
</SCRIPT>
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html;charset=Shift_JIS">
<TITLE>テスト</TITLE>
</HEAD>
<FORM target="_parent" method="POST">
<BODY>
<INPUT type="button" name="btnTest" value="実行" onclick="btn_click()">
<INPUT TYPE="hidden" name="item" value="<%=test1%>">
</BODY>
</FORM>
</HTML>
■test2.asp
<%
Dim test
Dim test2
test = Request.QueryString("TEST")
test2 = Request.QueryString("TEST2")
%>
test1.aspでは実行ボタン押下時にコールされたbtn_click処理の中で、item項目の値を変数paraに設定し、新規windowをtargetとし、aspページの後ろに?&にて、URLパラメタとして設定しています。URLパラメタは1項目目は?、2項目目からは&でつなぎます。
test2.aspでは、Request.QueryStringを使って、受け渡されたURLパラメタの項目値を取得することができます。
今回はFORMタグのmethodでPOST指定している為、POSTされますが、GETの場合は、外部からURLパラメタは丸見えですので注意が必要です。