• 締切済み

チェックボックスの値を、ページまたぎさせる

質問内容が伝わりにくかったら申し訳ありません。 現在、aspを使い、以下のようなプログラムを組もうとしています。 [ファイル] 1.asp 1-1.asp 2.asp [仕様] ○1.aspにある「A」ボタンを押すと、1-1.aspが別窓で開く。 ○1-1.aspにはチェックボックスが30個、「確定」ボタン、「戻る」ボタンがある。「確定」ボタンを押すと、チェックボックスの値を保持し、1-1.aspを閉じる。「戻る」ボタンを押すと、チェックボックスの値を保持せず、1-1.aspを閉じる。 ○1.aspにある「B」ボタンを押すと、2.aspが開く。 ○2.aspにおいて、1-1.aspでチェックされた値を利用する。 つまり、1-1.aspでチェックした値を、2.aspで利用したいのです。 私が考えたプログラムは、以下のとおりです。 しかし、このプログラムだと、(1)の行でエラーが起きてしまうようです。 [1-1.asp] <form method=post action="2.asp"> <input type=checkbox name="chk" value="1"> <input type=checkbox name="chk" value="2"> <input type=checkbox name="chk" value="3"> ・ ・ <input type=checkbox name="chk" value="30"> </form> [2.asp] <% SCRIPT LANGUAGE = JAVASCRIPT %> <% Dim a,a_split,b a=Request.Form("chk") ・・・(1) a_split=split(a,",") for each b in a_split Response.Write(b) next %> <input type=hidden>で送る方法等も検索してみましたが、やはり「次のページへチェックボックスの値を送る」方法はあるのですが、「ページをまたぐ」ような処理が分かりません。 どなたか、[仕様]を達成できるようなプログラムのご教授をお願いいたします。

みんなの回答

回答No.1

(1)でエラーが発生している根拠はなんでしょう? それ以前に、2.aspの1行目にある <% SCRIPT LANGUAGE = JAVASCRIPT %> これがエラーを発生させます。 Post送信されたフォーム内容を Response.Write(Request.Form()) で確認してみてはいかがでしょう? ためしに作ったコードですが、私の方では正しく動作します。 [post.asp] <%@ LANGUAGE="VBScript" %> <html> <body> <% Dim a,b,c a = Request.Form("chk") b = Split(a, ",") For Each c In b Response.Write(c) Next %> <form method=post action="post.asp"> <input type=checkbox name="chk" value="1"> <input type=checkbox name="chk" value="2"> <input type=checkbox name="chk" value="3"> <input type="submit" value="送信"> </form> </html> 1.asp → 2.asp → 3.asp といった流れで、1の入力値を3で受け取るには、2がその中継を行わなければなりません。これには、<input type="hidden">を使う方法の他に、セッションやCookieで実現する方法もあります。

okwave_gue
質問者

お礼

Wizard_Zero 様 お返事いただきありがとうございました。 私の説明不足のため、回答いただいた内容と私が行いたかった内容が少し違ってしまったため、もう少し自分で考えてみようと思います。

関連するQ&A