• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:配列の受け渡しについて)

ASPで配列の受け渡し方法について

このQ&Aのポイント
  • ASPで配列の値を次のページに渡す方法がわかりません。
  • 現在、配列の値をhiddenフィールドに設定して次のページに送信していますが、うまく受け取れません。
  • Request.Formを使用して値を取得していますが、配列の値までは取得できません。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.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> といった具合です #ただし 一瞬チェックボックスにすべてチェックがつくのが見えてしまいます

takaneko
質問者

お礼

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

その他の回答 (4)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.4

仕込み方は一緒ですよ 名前フィールドを 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の配列を比較して違うものは変更されたデータとなりますよ

takaneko
質問者

お礼

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

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.3

同じ要領で受け渡しは可能ですよ Response.Write( "<input type='checkbox' name='ck' value='" & _ CStr(rs("コード")) & '>" ) といった具合に チェックボックスを作成します 受け側では Dim arCode arCode = Split( Request.Form("ck"), ", ") といった具合で チェックのついた物だけのコードを取得できます # .Itemは無くても良いみたいです ...

takaneko
質問者

お礼

お世話になります、できましたありがとうございます! チェックした値だけとれるのは理想的でした。 最後にお聞きしたいのですが、コードはValueに設定してチェックしたものがとれるのですが、名前を手修正でテキストを変更すると次のページに持っていくことができないのですが、これはいい方法ありませんでしょうか? 流れとしましては検索後、コード、名前、チェックボックスが表示されているページで名前を変更したあと、処理ボタンを押して変更した名前を次ページに受け渡ししたいのですが、できないため処理できないのです。チェックしたものだけコード、変更した名前をもっていければなんとでもなるのですが・・・。 ご存知でしたらご教授お願いいたしますm(__)m

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

1箇所訂正 受け側の配列構築は A = Split( Request.Form("aaa").Item, ", " ) です # .Itemが抜けてしまいました m(__)m

takaneko
質問者

お礼

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

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

配列全体を 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引数は 『,』とスペースです といった具合で受け取ります

関連するQ&A

専門家に質問してみよう