• 締切済み

ASP,Javascriptチェックボックス値格納

仕事で、急に予約システムの変更を求められていて困っています。 今までラジオボタンで1つしか選択出来なかったものを、チェックボックスで複数選択可能にしたいのですが、複数値を取得後のDBへの格納が上手く出来ません。明日行って、使えるようにしないといけないのですが、知識がないもので、色々なヒントも自分の場合への応用ということが出来ず焦りだけがつのっています・・・皆様にヘルプ頂けるとありがたいです。。 【実行したいこと】DBから一覧を読み込んで表示。同時にチェックボックスを作成。 10件のチェックボックスの値<s_id>(と申込者名等)を、DBのyoyakuテーブルに格納。 (yoyakuテーブルに用意しているs_id1~s_id10に格納。チェックなしの場合も空欄、もしくは0等チェックなしであることがわかる値を格納) ※文字数の関係上、関係があると思われる部分のみ抜粋。 ☆入力画面 <% '『data.mdb』のクエリ(Q_total)により申込が終了している場合にラジオボタンを見えなくするスクリプト   Dim Conn, rs, SQL   Dim db, DBName   db = Server.MapPath("data.mdb")   DBName = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & db   Set Conn = Server.CreateObject("ADODB.Connection")   Conn.Open DBName SQL = "SELECT * FROM Q_total_ninkitsuki" Set rs = Server.CreateObject("ADODB.Recordset") rs.Open SQL, Conn,3,3 Do While Not rs.EOF %> <%If rs.Fields("flg") = 1 Or rs.Fields("simekiribi") =< rs.Fields("loadtime")Then %> <tr> <td> <span class="red">終了</span> <input type="checkbox" name="T6" id="T6" value="<%=rs.Fields("s_id")%" disabled /></td> <td colspan="1"><%=rs.Fields("s_id")%></td> <td colspan="2"><%=rs.Fields("date")%></td> <td colspan="2"><%=rs.Fields("s_id_count")%></td> </tr> <%Else %> <tr> <td> <input type="checkbox" name="T6" id="T6" value="<%=rs.Fields("s_id")%>" />             </td> <td colspan="1"><%=rs.Fields("s_id")%></td> <td colspan="2"><%=rs.Fields("date")%></td> <td colspan="2"><%=rs.Fields("s_id_count")%></td> </tr> <%End If rs.MoveNext Loop rs.Close Set rs = Nothing Conn.Close Set Conn = Nothing %> ☆データが送られる側のページ <% moshikomi = Request.Form("apply") busitu = Request.Form("busitu") f_syokuban = Request.Form("syokuban") f_name = Request.Form("f_name") ipcheck = Request.ServerVariables("REMOTE_ADDR") torokuday = Request.Form("S12") mail = Request.Form("mail") yakushoku = Request.Form("yakushoku") radio = Request.Form("T6") f_date = split(radio,",") s_id = f_date(0) s_id1 = f_date(1) s_id2 = f_date(2) s_id3 = f_date(3) s_id4 = f_date(4) s_id5 = f_date(5) s_id6 = f_date(6) s_id7 = f_date(7) s_id8 = f_date(8) s_id9 = f_date(9) s_id10 = f_date(10) %> dim SLIST,RSB,SLIST1,RSB1,KDB db1=server.mappath("data.mdb") DBName="Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & db1 Set KDB = Server.CreateObject("ADODB.Connection") KDB.open DBName SLIST = "SELECT * FROM yoyaku" Set RSB = Server.CreateObject("ADODB.Recordset") RSB.Open SLIST, KDB,3,3 rsb.AddNew rsb("moshikomi") = moshikomi rsb("busitu") = busitu rsb("syokuban") = f_syokuban rsb("name") = f_name rsb("mail") = mail rsb("torokuday") = now() rsb("ipaddress") = Request.ServerVariables("REMOTE_ADDR") rsb("s_id") = s_id rsb("s_id1") = s_id1 rsb("s_id2") = s_id2 rsb("s_id3") = s_id3 rsb("s_id4") = s_id4 rsb("s_id5") = s_id5 rsb("s_id6") = s_id6 rsb("s_id7") = s_id7 rsb("s_id8") = s_id8 rsb("s_id9") = s_id9 rsb("s_id10") = s_id10 rsb("yakushoku") = yakushoku rsb.UpDate RSB.close Set RSB = Nothing KDB.close Set KDB = Nothing %> ☆データを入れるアクセスの設定 ID      オートナンバー型 moshikomi テキスト型 s_id テキスト型 s_id1     テキスト型 s_id2     テキスト型 s_id3     テキスト型 s_id4     テキスト型 s_id5     テキスト型 s_id6     テキスト型 s_id7     テキスト型 s_id8     テキスト型 s_id9     テキスト型 s_id10     テキスト型 syokuban  テキスト型 busitu    テキスト型 yakushoku  テキスト型 name    テキスト型 mail     テキスト型 torokuday  テキスト型 renraku   テキスト型

みんなの回答

  • onos
  • ベストアンサー率81% (127/155)
回答No.2

えと、チェックボックスを10個つくったら、値は10個返ってきてそれぞれにチェックされてる/されてないがはいっている、と「思い込んで」いませんか? HTMLの動作ってそんな感じにならないはず。 チェックされているチェックボックスの値だけが配列になって、いやもっと低レベルでみるとカンマでつながってだったかな?まあ、そういう形で値が返ってくるはずです。 なのでインデックスが有効範囲にない、といわれて当然だと思います。 まずは実際にどういう値が返って来るのかを、「思い込み」ではなく実際に確かめてみることが必要だと思います。

回答No.1

>複数値を取得後のDBへの格納が上手く出来ません。 どうやってうまく行ってないの?

splasho
質問者

補足

Taiyonoshizukuさま、見て頂いてありがとうございますm(_ _)m 10個あるチェックボックス全てにチェックを入れないと、 実行時に以下のようなエラーメッセージが出てしまいます。 このテスト時は、1番,3番にチェックを入れました。 2番だけにチェックを入れると'[number: 1]'といった感じになります。 エラーが出ているのは、s_idのあたりです。 【エラー】 Microsoft VBScript 実行時エラー エラー '800a0009' インデックスが有効範囲にありません。: '[number: 2]' /jinji/test_kenshu/yoyaku_kanryou.asp, 行 33

関連するQ&A