出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

[2182] Re:配列入力
投稿者:ナッツさん 2002/06/17 15:08:40
> > > <%
> > > dim foo(300)
> > > foo(0) = "TEST00"  --------a
> > > foo(1) = "TEST01"  --------b
> > > foo(2) = "TEST02"  --------c
> > > %>
> > > <Script Language="VBSCRIPT">
> > > sub Load
> > > dim k(300)
> > > k(0) = "<%foo(0)%>" --------------d
> > > k(1) = "<%foo(1)%>" --------------e
> > > k(2) = "<%foo(2)%>" --------------f
> > > end sub
> > > </Script>
> > >
> > > '**********************
> > > 上手くいかないFor文
> > > dim h
> > > for h = 0 to 2
> > > k(h) = "<%=foo(h)%>"
> > > next
> > > '**********************
> > >
> >
> > 上手くいかないFor文はLoad関数の中にあるのでしょうか?
> > それともbodyの中にあるのでしょうか?
> >
>
> 返答ありがとうございます。
> For文はLoad関数内にあります。
> For文でまわしても、foo(0)の値しか得られません。
> For文でなくても、Foo(0)の値がはいってしまいます。
> 例えば、
> i = 0
> j = 1
> x = foo(i)
> y = foo(j)
>
> x,yはfoo(0)の値がはいってしまいます。
> 根本的に考え方が間違っているのでしょうか?
> よろしくお願い致します。
>
サーバスクリプトとクライアントスクリプトを区別して考えたらどうでしょう(TRYASPにもありますが)
1.foo配列を隠しでもっておく。
2.隠しエリアをLoad関数は参照する
ってのはどうでしょう。
例)
<%
dim foo(3)
foo(0) = "TEST00" '  --------a
foo(1) = "TEST01" '  --------b
foo(2) = "TEST02" '  --------c
strfoo = join(foo,chr(27)) ←配列を文字列にする

%>
<Script Language="VBSCRIPT">
sub Load()
dim k(300)
'上手くいかないFor文
dim h
STOP

stra=split(aaa.value,chr(27)) ←文字列を配列に戻す
k(0) = stra(0) '--------------d
k(1) = stra(0) '--------------e
k(2) = stra(1) '--------------f

for h = 0 to 2
k(h) = stra(h)
next

end sub
</Script>

</HEAD>
<BODY ONLOAD ='Load()'>
<input id='aaa' name='aaa' value='<%=strfoo%>'>

</BODY>
</HTML>



配列入力   popoさん [2002/06/17 10:05:19] [2176]
  Re:配列入力   ナッツさん [2002/06/17 11:31:57] [2177]
    Re:配列入力   popoさん [2002/06/17 13:09:51] [2178]
      Re:配列入力   ナッツさん [2002/06/17 15:08:40] [2182]
        Re:配列入力   popoさん [2002/06/18 0:23:00] [2191]


TreeBBS For ASP V.0.1.3
Program By YasNet