フレーム間のフォームの値受け渡しについて。

[上に] [前に] [次に]
木村 2000/02/22(火) 16:42:20
はじめまして。ご指導の程宜しくお願いします。
 フレーム分けしている上画面(テストA.asp)のチェックボックスの値(True Or False)を,チェックボックスClick時、又は、submitボタンClick時に下画面(テストB.asp)のチェックボックスと同じ名前のhiddenオブジェクトに代入したいのですが、なかなかうまくいきません。尚、RS.Fields("ID")は、1,2,3,4〜と連番になっていますので、チェックボックスもhiddenも同じ名前で整列されています。

テスト.asp
<HTML>
<HEAD>
<TITLE>テスト</TITLE>
</HEAD>
<FORM>
<FrameSet rows="70%,*" FRAMEBORDER=0>
<Frame SRC="テストA.asp" METHOD="POST" Name="テストA">
<Frame SRC="テストB.asp" METHOD="POST" Name="テストB">
<noframes>
<Body>
<P>このページはフレームに対応したブラウザでのみアクセスできます。</P>
</Body>
</noframes>
</FrameSet>
</FORM>
</HTML>

テストA.asp
<HTML>
<%
'********** DB-OPEN **********
Server.ScriptTimeout = 900
Set DB = Server.CreateObject("ADODB.Connection")
DB.Open "TEST"

Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open "YASAI", DB
%>

<HEAD>
<TITLE>テストA</TITLE>
</HEAD>
<BODY >
<FORM NAME="テストA">

<TABLE BORDER = "1" ALIGN = CENTER>

<%
RS.MoveFirst
Do Until RS.EOF
Response.Write "<TR>"
Response.Write "<TD WIDTH = '20' ALIGN = CENTER >"
Response.Write "<INPUT TYPE = CHECKBOX NAME = "&RS.Fields("ID")&" >"
Response.Write "</TD>"
Response.Write "</TR>"
RS.MoveNext
Loop
%>
</TABLE>

</BODY>
</FORM>
</HTML>

テストB.asp
<HTML>
<%
'********** DB-OPEN **********
Server.ScriptTimeout = 900
Set DB = Server.CreateObject("ADODB.Connection")
DB.Open "TEST"

Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open "YASAI", DB
%>

<HEAD>
<TITLE>テストB</TITLE>
</HEAD>
<BODY >
<FORM NAME="テストB">

<TABLE BORDER = "1" ALIGN = CENTER>

<%
RS.MoveFirst
Do Until RS.EOF
Response.Write "<TR>"
Response.Write "<TD WIDTH = '20' ALIGN = CENTER >"
Response.Write "<INPUT TYPE = hidden NAME = "&RS.Fields("ID")&" >"
Response.Write "</TD>"
Response.Write "</TR>"
RS.MoveNext
Loop
%>
</TABLE>
<TABLE ALIGN = CENTER>
<TD WIDTH = "140">
<INPUT TYPE="submit" VALUE="表示" NAME="BUTTON">
</TD>
</TABLE>
</BODY>
</FORM>
</HTML>

無責任官庁 2000/02/23(水) 11:23:21
とりあえずASPってのはおいといて、ですねぇ・・・
以下のサンプルで分かりますでしょうか。JavaScriptでやってます。
これはクリックした時に値をコピーする方法です。
(わかりやすくする為、値のコピー先はテキスト表示してます)
これをモトに、ASPに変換していったらいいんじゃないかと。

とりあえずIE4とNN4では動作確認済みです。

〜〜〜フレーム〜〜〜
<HTML><HEAD></HEAD>
<FRAMESET COLS="50%,*">
<FRAME SRC="test1.html" NAME="f1">
<FRAME SRC="test2.html" NAME="f2">
</FRAMESET>
</HTML>
〜〜〜test1.html〜〜〜
<html><head>
<script>
function datacopy(formItem){
targetitem = parent.f2.document.F2.elements[formItem.name];
if(formItem.checked == true){
targetitem.value = formItem.value;
}else{
targetitem.value = "";
}
}
</script>
</head>
<body>
<form name=F1>
<input type=checkbox name=C1 value="C1check!" onClick="datacopy(this);"><br>
<input type=checkbox name=C2 value="C2check!" onClick="datacopy(this);"><br>
<input type=checkbox name=C3 value="C3check!" onClick="datacopy(this);"><br>
</form>
</body></html>
〜〜〜test2.html〜〜〜
<html>
<head></head>
<body>
<form name=F2>
<input type=text name=C1 value=""><br>
<input type=text name=C2 value=""><br>
<input type=text name=C3 value=""><br>
</form>
</body></html>

[上に] [前に] [次に]