さて、今回はASP、ラジオボタンでサーバサイドに値渡しを(したつもり)します。まずは、適当にラジオボタンでも作成してみます。
 
ラジオボタンをつくるだけ.asp ※action属性でsubSample.aspを指定していますが、このままでは特に何もありません

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>テストページ01</title>
</head>
<body>
 <form action="subSample.asp" method="get">
  <input type="radio" name="button1" value="1" checked />送信test01
  <input type="radio" name="button1" value="2" />送信test02
  <input type="submit" value="送信" />
 </form>
</body>
 

f:id:atwgwu:20170510201831p:plain

 
 あれ、文字化けしましたね。文章でUTF-8を指定しているのに、aspファイルの保存形式がUTF-8でなかったためから(たぶん)なので、保存形式をUTF-8に変更します。
 

f:id:atwgwu:20170510201853p:plain

 
 とりあえず治りました。このファイル保存形式のミス、結構あると思うんですよね。
 
 次に、サーバサイドのaspを記述します。クライアントサイドで押したラジオボタンの結果を表示するだけの簡単なものです。
 
サーバサイド.asp(subSample.asp)
<%
@Language = "VBScript"
If request.QueryString.Item(1) = 1 Then
 response.write("test01")
Else
 response.write("test02")
End If
%>
 
 クライアンサイドでsubmitした"button1"の値を受け取って、条件分岐しています。しかし、サーバサイド処理をどれだけ独立して記述するべきなのかがよくわからない。

 例えば、上記のプログラムにタグを埋め込んで、下記のようにしても動く。
 
タグを埋め込んでみたサーバサイド.asp
<%@Language = "VBScript"%>
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>テスト02</title>
</head>
<body>
 <h1>勉強中</h1>
 <%
  If request.QueryString.Item(1) = 1 Then
   response.write("test01")
 Else
   response.write("test02")
 End If
 %>
</body>
</html>
 
 結局 "<% %>" で囲っている部分はサーバサイド処理なのだから、問題はなさそう。
 
 
 
 
~~以下、参考にしてはいけない補足~~
 以上の結果から、以下のようなASPを書いてみた。
 
<%@Language = "VBScript"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>テストページ01</title>
 <script type = "text/javascript">
  function testFuncJa(valueJa){
   if(valueJa == 1){
     testView.innerHTML = "<% testFuncVb(1) %>";
   }else if(valueJa == 2){
    testView.innerHTML = "<% testFuncVb(2) %>"; 
   }else{
     testView.innerHTML = "<% testFuncVb(0) %>";
   }
  }
  </script>
 <%
 function testFuncVb(valueVb)
  If valueVb = "1" Then
   Response.Write "test01"
  ElseIf valueVb = "2" Then
   Response.Write "test02"
  Else
   Response.Write "UnKnown"
  End If
 end function
 %>
</head>
<body onload = "testFuncJa(0)">
 <form>
  <input type="radio" name="button1" onClick= "testFuncJa(1)" />test01
  <input type="radio" name="button1" onClick= "testFuncJa(2)" />test02
 </form>
 <div id="testView"></div>
</body>
 
 
 えっ、入り乱れとるし何がしたいん・・・。
 私の希望は、「ラジオボタンでクリックした内容を<div>タグ内に動的表示させる」で、表示させる内容はサーバサイドで決定するという感じ。回りくどいコードですが、これはメモ書きとして。