プロが教える店舗&オフィスのセキュリティ対策術

初めて投稿します。
手詰まりになってしまい、お知恵を拝借できればと思います。

Dim Cnt
Dim A()
Dim c

Cnt = カウント件数(Select文でのカウント件数)
ReDim A(Cnt)

c = 0

DO UNTIL SQLrs.EOF

A(c) = SQLrs.Fields("フィールド名")
c = c + 1

LOOP

としてAの配列に格納しているのですが、これをASPの次のページに渡したいのですが、うまくわたせません。

<input type="hidden" name="aaa"value="<%= A %>">

として

次のページで

aaa = Request.Form("aaa")

で配列の値まではは取得できないのでしょうか?

どうかよろしくお願いいたします。

A 回答 (5件)

そういったことをしたいのであれば 送信ボタンのonclickイベントで細工することになりそうですよ



出力されているHTMLが
<input type="checkbox" name="ck">
といった具合なら

<input type="submit" onclick="mySubmit()">
<script type="vbscript">
Function mySubmit()
  dim ck
  for each ck in document.getbyElementsByName("ck")
    if not ck.checked then
      ck.checked = true
      ck.value="off"
    end if
  next
  mySubmit = true
End Function
</scriopt>
といった具合です

#ただし 一瞬チェックボックスにすべてチェックがつくのが見えてしまいます
    • good
    • 0
この回答へのお礼

スクリプトでやるしかなさそうですね・・・。

しかしながら大変参考になりました、初期の質問内容からずれてきているので一旦締め切らせていただきます。また質問ありましたらよろしくお願いいたしますm(__)m

お礼日時:2007/09/12 12:57

仕込み方は一緒ですよ


名前フィールドを
Response.write( "<td><input type='text' name=tx value='" + rs("Name").Value + "'></td>" + vbcrlf )
といった具合に仕込みます

受け側で
Dim aaa, tx
aaa = Split(Request.Form("aaa"), ", ")
tx = Split(Request.Form("tx"), ", ")
として取得します
これで aaaとtxの配列を比較して違うものは変更されたデータとなりますよ
    • good
    • 0
この回答へのお礼

ありがとうございます。
取得はできそうです。

ちなみに下のほうでチェックボックスを取得する際に、チェックしてValueを設定しないと、”on”が送られますが、チェックしないものにはoffなどおくることはできないのでしょうか?offでなくてもチェックしてない場合値を送れればよろしいのですが・・・。

何度もすみません・・・。

お礼日時:2007/09/11 14:00

同じ要領で受け渡しは可能ですよ



Response.Write( "<input type='checkbox' name='ck' value='" & _
CStr(rs("コード")) & '>" )

といった具合に チェックボックスを作成します

受け側では
Dim arCode
arCode = Split( Request.Form("ck"), ", ")
といった具合で チェックのついた物だけのコードを取得できます

# .Itemは無くても良いみたいです ...
    • good
    • 0
この回答へのお礼

お世話になります、できましたありがとうございます!
チェックした値だけとれるのは理想的でした。

最後にお聞きしたいのですが、コードはValueに設定してチェックしたものがとれるのですが、名前を手修正でテキストを変更すると次のページに持っていくことができないのですが、これはいい方法ありませんでしょうか?

流れとしましては検索後、コード、名前、チェックボックスが表示されているページで名前を変更したあと、処理ボタンを押して変更した名前を次ページに受け渡ししたいのですが、できないため処理できないのです。チェックしたものだけコード、変更した名前をもっていければなんとでもなるのですが・・・。

ご存知でしたらご教授お願いいたしますm(__)m

お礼日時:2007/09/11 10:57

1箇所訂正



受け側の配列構築は

A = Split( Request.Form("aaa").Item, ", " )
です
# .Itemが抜けてしまいました m(__)m
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!
上手く値の受け渡しができました。

便乗してさらに質問なのですが、値が固定されていれば今回ので問題ないのですが、前のページで値を変更した場合にはうまく渡せません・・・。

具体的に書きますと、抽出画面で名前を指定すると、指定された名前を元に個人コード、名前、チェックボックスの3つの項目を抽出しています。件数は基本的に複数でます。コードは固定です、名前は任意に変更できます、さらにチェックボックスにチェックついているものだけ変更ボタンを押したときに次のページでASPを使って処理しようとしているのですが、チェックボックスを変更した場合(trueかflase)その値が引き渡せないのです(泣)チェックボックスの値を持ち越すにはどうしたらよろしいでしょうか?

どうかよろしくお願いいたします。

お礼日時:2007/09/10 15:22

配列全体を hiddenひとつでは無理なようですよ



<% For n=0 to Cnt
Response.Write("<input type='hidden' name='aaa' value=" & A(n) & ">")
next n
%>
といった サーバサイドスクリプトで aaaを複数設定します

受け側で
Dim A, n
A = Split( Request.Form("aaa"), ", " )
' Splitの第2引数は 『,』とスペースです
といった具合で受け取ります
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!