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

サンプル集の「12. VBScript(サーバー)からJavaScript(クライアント)へのデータの受け渡しについて」   arutoさん [2002/06/03 11:49:57] [2119]
  Re:サンプル集の「12. VBScript(サーバー)からJavaScript(クライアント)へのデータの受け渡しについて  くっくさん [2002/06/03 16:52:01] [2120]
    Re:サンプル集の「12. VBScript(サーバー)からJavaScript(クライアント)へのデータの受け渡しについて   arutoさん [2002/06/03 16:59:49] [2121]
      Re:サンプル集の「12. VBScript(サーバー)からJavaScript(クライアント)へのデータの受け渡しについて   くっくさん [2002/06/03 22:58:14] [2127]
        ありがとうございます。   arutoさん [2002/06/04 10:27:13] [2129]
  Re:サンプル集の「12. VBScript(サーバー)からJavaScript(クライアント)へのデータの受け渡しについて  北岳さん [2002/06/03 18:14:37] [2123]
    ありがとうございます。それで・・・   arutoさん [2002/06/03 19:10:42] [2125]
      例題2   北岳さん [2002/06/03 20:30:33] [2126]
        Re:例題2   arutoさん [2002/06/04 10:15:40] [2128]

[2119] サンプル集の「12. VBScript(サーバー)からJavaScript(クライアント)へのデータの受け渡しについて」
投稿者:arutoさん 2002/06/03 11:49:57
サンプル集にある「12. VBScript(サーバー)からJavaScript(クライアント)へのデータの受け渡しについて」なのですが

値の「受け取る方」と「渡す方」で、両方とも配列を使用し、
配列番号に添え字を使用したやり方はできるのでしょうか?

つまり、javascript側の表記なのですが、
サンプルでは「str = "<% = Wk_addr %>";」でした。
これを
「str[i] = "<% = Wk_addr(i) %>";」
のような形でループ文を使用したいと考えているのですが、
できるものなのでしょうか?
ほかにやり方があるのでしたら、教えて下さい。
宜しくお願い致します。

[2120] Re:サンプル集の「12. VBScript(サーバー)からJavaScript(クライアント)へのデータの受け渡しについて
投稿者:くっくさん 2002/06/03 16:52:01
一言で言うと出来ます。

[2121] Re:サンプル集の「12. VBScript(サーバー)からJavaScript(クライアント)へのデータの受け渡しについて
投稿者:arutoさん 2002/06/03 16:59:49
> 一言で言うと出来ます。
>

もし宜しければ、教えて頂けないでしょうか?
お願い致します。

[2127] Re:サンプル集の「12. VBScript(サーバー)からJavaScript(クライアント)へのデータの受け渡しについて
投稿者:くっくさん 2002/06/03 22:58:14
> > 一言で言うと出来ます。
> >
>
> もし宜しければ、教えて頂けないでしょうか?
> お願い致します。

失礼しました。急に忙しくなってここをみることができませんでした。
私も北岳さんのおっしゃる(1)を想定していると思い、出来ます、と回答しました。

サンプルは北岳さんの提示されたものでよさそうです。
考え方的なものを言いますと、配列であろうが、なかろうが、やってることは同じです。
サーバサイドでは処理した結果を文字列として返すだけです。
まずは配列を使用するクライアントサイドの静的なスクリプトを書いてやって、
動作確認をやってそれをサーバサイドスクリプト用に多少モディファイしてやれば
いいのではないでしょうか?サーバサイドのデータ構造が配列であろうが無かろうが、
クライアントサイドでは意識する必要はありません。

[2129] ありがとうございます。
投稿者:arutoさん 2002/06/04 10:27:13
くっくさん、お忙しい中返事を頂きありがとうございます。

北岳さんの例題を見ていろいろ自分なりに試した結果、
できました。

本当にありがとうございました。
では、失礼致します。

[2123] Re:サンプル集の「12. VBScript(サーバー)からJavaScript(クライアント)へのデータの受け渡しについて
投稿者:北岳さん 2002/06/03 18:14:37
(1) VBScript(サーバー)からJavaScript(クライアント)へのデータの受け渡しを、サーバ内部で、配列を使って行いたい。
 
ご質問は(1)らしく思われますが、ひょっとして別の意味なのでは?
 
(2)for文を使って配列変数にクライアントサイドで値を書き込みたい。ただしデータはサーバにある。
 
結論を先に言うと、(1)は可能で、(2)はできません。
 
(2)だとしますと(→脚注)、
基本的にWEBでは、サーバからクライアントへ情報を一方通行で送り出します。
従ってブラウザが必要とする情報は、サーバのASP処理段階で全部ページ内に書き込んでおく必要があります。
クライアント側に渡ってからは、(改めてFormでサーバに別のジョブを行わせない限り、あるいはRemoteScriptのような特別な手段を用いなければ、)
★サーバから変数の中身を取ってきて、配列等に設定することはできません。★
 
----- 1.asp -----
<HTML><head>
<script language="JavaScript">
<!--
str1=new Array(10);
<% for i=0 to 10 %>
str1[<%= i %>] = "<%= i %>の二乗は<% = i*i %>";<%
next %>
//-->
</script>
</head><body>
<script language="JavaScript">
<!--
var i;
for(i=0;i<=10;i++){
window.document.write("<br>"+ str1[i]);
}
//-->
</script>
</body></html>
---------------------------
 
この場合、クライアントに送られたASPのソースは以下のようになっています。
ブラウザに渡される「前に」、配列str1[i]の中身は全部ソースに書き込まれています。
 
なお以上の文章は、str1[i]の中身は、クライアント単独では算出できないことを前提とします。(実はこの例は、その前提から外れています。)
 
------------ ブラウザのソース -------------
<HTML><head>
<script language="JavaScript">
<!--
str1=new Array(10);
str1[0] = "0の二乗は0";
str1[1] = "1の二乗は1";
str1[2] = "2の二乗は4";
str1[3] = "3の二乗は9";
str1[4] = "4の二乗は16";
str1[5] = "5の二乗は25";
str1[6] = "6の二乗は36";
str1[7] = "7の二乗は49";
str1[8] = "8の二乗は64";
str1[9] = "9の二乗は81";
str1[10] = "10の二乗は100";
//-->
</script>
</head><body>
<script language="JavaScript">
<!--
var i;
for(i=0;i<=10;i++){
window.document.write("<br>"+ str1[i]);
}
//-->
</script>
</body></html>
--------------------------------------------------------------
[注]
(1)だと何も書くことがないので、的外れでも構わず(2)を書きました。
なお私は、
 
フリートーク[7]「回答を書く際の想定読者」より;
>「失礼ですが、あなた、ここまで知ってる?」など、一々確認しながら、
 
回答を書くことはしていません。

[2125] ありがとうございます。それで・・・
投稿者:arutoさん 2002/06/03 19:10:42
返事ありがとうございます。
はじめましてです。

返事の内容からなんとなく理解したつもりでいます。
確かに例題をいろいろいじって自分なりにやってみた結果
できました。
ただ、ASP側が配列の値を渡したい。
更に渡すときにFOR文などのループ文を使い。
といった場合にはどうしても良い回答が自分なりにえられません。

> ----- 1.asp -----
> <HTML><head>
> <script language="JavaScript">
> <!--
> str1=new Array(10);
> <% for i=0 to 10 %>
> str1[<%= i %>] = "<%= i %>の二乗は<% = i*i %>";<%
> next %>
> //-->
> </script>
> </head><body>
> <script language="JavaScript">
> <!--
> var i;
> for(i=0;i<=10;i++){
> window.document.write("<br>"+ str1[i]);
> }
> //-->
> </script>
> </body></html>
> ---------------------------
上記の例題の中の
「> str1[<%= i %>] = "<%= i %>の二乗は<% = i*i %>";」
の右辺が配列だった場合にはどのようになるのでしょうか?
そもそもサンプル集からみると"<%= 変数(1) %>"みたいに
配列のある分だけかいていくようなことはしたくはないのです。
"<%= 変数(1) %>"
     --この部分の添え字をループ文を使用して変更できる
      ようにしたいのですが、方法等がありましたら
      教えて下さい。
      こちらで、いろいろ試したら、全て文字列として
      認識しているため全てエラーとしてかえってきました。
      お願い致します。  

[2126] 例題2
投稿者:北岳さん 2002/06/03 20:30:33
クライアントのJavaScriptを、サーバのVBScriptで作ります。
<%= str1(i) %>など、<% %> の中はサーバのASP(VBScript)が書いています。
できあがった、str1[1] = '富士山'; などはクライアントのJavaScriptです。

------------------------ 2.asp ---------------------
<%
dim str1(5),num1(5)
str1(1)="富士山":num1(1)=3776
str1(2)="北岳":num1(2)=3192
str1(3)="奥穂高岳":num1(3)=3190
str1(4)="間ノ岳":num1(4)=3189
str1(5)="槍ヶ岳":num1(5)=3180
%>
<HTML><head>
<script language="JavaScript">
<!--
var str1=new Array(5);
var num1=new Array(5);
<% for i=1 to 5 %>
str1[<%= i %>] = '<%= str1(i) %>'; //文字列
num1[<%= i %>] = <%= num1(i) %>; //数値 <%
next %>
//-->
</script>
</head><body>
<script language="JavaScript">
<!--
var i;
for(i=1;i<=5;i++){
window.document.write("<br>日本で<b>"+ i + "</b>番目の <b>" + str1[i] + " </b>の標高は <b>" + num1[i] + "m</b> です。");
}
var x=num1[1]-num1[2];
window.document.write("<p>北岳は富士山よりも" + x + "m 低い。");
//-->
</script>
</body></html>
---------------------------
<実行結果>
日本で1番目の 富士山 の標高は 3776m です。
日本で2番目の 北岳 の標高は 3192m です。
日本で3番目の 奥穂高岳 の標高は 3190m です。
日本で4番目の 間ノ岳 の標高は 3189m です。
日本で5番目の 槍ヶ岳 の標高は 3180m です。
北岳は富士山よりも584m 低い。
 
(うむむ。なんか、随分低いような感じがする・・・)

[2128] Re:例題2
投稿者:arutoさん 2002/06/04 10:15:40
北岳さん、大変ご迷惑をおかけしました。
そして、本当にありがとうございます。

こちらでも、例題2を実行してみた結果できました。
また、いろいろ試したみた結果、全部成功しました。

でも、私も質問をする前にこの方法をやってみたのですが
うまくいかずに質問をしたのです。
プログラム的にどこかへんだったのですね。

お忙しい中、対応して頂き本当に感謝しております。
ありがとうございました。
では、失礼致します。



TreeBBS For ASP V.0.1.3
Program By YasNet