• 締切済み

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

質問内容が伝わりにくかったら申し訳ありません。 現在、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

  • チェックボックスの値を取り出したい

    こんにちは JavaScript初心者です。 過去ログを見ながらここまでやったのですが、何も表示されません。 ?マークの所で引っかかっていると思うのですがどなたかご教授願います。 やりたい事は、チェックボックスのチェックの入った所の値を取り出して表示したいのですが... 3つチェックされていてOKをクリックした時に、ABC と出てくるのが理想です。 <html> <SCRIPT LANGUAGE="JavaScript"> <!-- function chkform() { for(i=1; i<=3; i++) { chkdata(i) = document.form0.chk(i).Value    ? var aa = chkdata(i) document.write(aa) } } //--></SCRIPT> <FORM onSubmit="return chkform(this)" name = "form0"> <INPUT type="checkbox" name="chk" value="A" > <INPUT type="checkbox" name="chk" value="B" > <INPUT type="checkbox" name="chk" value="C" > <INPUT type="submit" value="OK" > </form> </html>

  • チェックボックスの全選択

    <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=4> <input type="checkbox" name="chk" value=5> このように同一名称のチェックボックスに対して ボタンを押下された時全てのチェックボックスを チェックするJavaScriptの 書き方を教えて貰えないでしょうか

  • HTML内外におけるチェックボックスの扱い

    ASPにおけるチェックボックスに関するご質問させていただきます。 現在、ASPファイルにおいて、チェックボックスを使用したプログラムを組んでいます。 作成しようとしているプログラムは、 「該当チェックボックスをチェックしたか否かで、確定ボタンを押したあとの移動先URLを変更する」ものです。 プログラムは以下のようになっています。 [abc.asp] <%@script language = vbscript %> Function SelectURL()  チェックされたチェックボックスの値を知りたい・・・☆ End Function <HTML> <HEAD> </HEAD> <BODY> <FORM NAME=frmCheck>    <INPUT TYPE=checkbox NAME=c1 VALUE="001">チェックボックス1    <INPUT TYPE=checkbox NAME=c2 VALUE="002">チェックボックス2    <INPUT TYPE=checkbox NAME=c3 VALUE="003">チェックボックス3 </FORM> </BODY> </HTML> このような状態です。 チェックボックスのうち、チェックされているもののVALUE値を知りたいのです。 値を知りたい場所は、☆印のある場所でです。 HTML内においては、document.frmCheck.c1.checked、.value等でチェックの有無は確認できるのですが、☆印はHTMLの外にあります。 何かアドバイスをいただければと思います。よろしくお願いします。

  • チェックボックスのうちひとつでもチェックがなければエラー

    チェックボックスが複数個(5~6個)あります。 hajime.html <form action="niban.php" method="post"> <input type="checkbox" value="A" name="CHK1" /> <input type="checkbox" value="B" name="CHK2" /> <input type="checkbox" value="C" name="CHK3" /> <input type="checkbox" value="D" name="CHK4" /> <input type="checkbox" value="E" name="CHK5" /> <input type="checkbox" value="F" name="CHK6" /> </form> ●このA~Fのうち、ひとつでもチェックされていなければ チェックしてください。とエラー表示させたいのですが… ●次のページではこのようにデータを受取していします。 niban.php// フォームの値取得は下記のように行っています。 if ($_SERVER["REQUEST_METHOD"] == "POST") { foreach($_POST as $k => $v){ if (get_magic_quotes_gpc()) { $v = stripslashes($v); } $v = htmlspecialchars($v); $v = addslashes($v); $$k = $v; } } else { exit(); } $ErrFlg = 0;(エラーの時は$ErrFlgを1にします) ●エラー構文のサンプル↓ if ($name == "" ) { echo "<p>名前を入力してください。"; $ErrFlg = 1; } どうぞお力をおかしください

    • 締切済み
    • PHP
  • チェックボックスのチェック処理

    HTMLでボタン押下時にチェックしたいことがあります。 ■カテゴリーA~Cで、カテゴリー毎に選択できるのは一つのみ  (例)「A1・あ」と「A2・お」が選択時はNG ■カテゴリーは最大2つまで選択可能  (例)「A1・い」と「C1・さ」が選択時はOK    「A1・い」と「B2・く」と「C1・さ」が選択時はNG <html> <head> </head><body> <form> <table border="1"> <tr> <td>A1</td> <td><input type="checkbox" name="chk1" value="1">あ</td> </tr> <tr> <td> </td> <td><input type="checkbox" name="chk1" value="1">い</td> </tr> <tr> <td> </td> <td><input type="checkbox" name="chk1" value="1">う</td> </tr> <tr> <td>A2</td> <td><input type="checkbox" name="chk1" value="1">え</td> </tr> <tr> <td> </td> <td><input type="checkbox" name="chk1" value="1">お</td> </tr> <tr> <td>B1</td> <td><input type="checkbox" name="chk1" value="1">か</td> </tr> <tr> <td>B2</td> <td><input type="checkbox" name="chk1" value="1">く</td> </tr> <tr> <td> </td> <td><input type="checkbox" name="chk1" value="1">け</td> </tr> <tr> <td>C1</td> <td><input type="checkbox" name="chk1" value="1">さ</td> </tr> <tr> <td>C2</td> <td><input type="checkbox" name="chk1" value="1">し</td> </tr> <tr> <td> </td> <td><input type="checkbox" name="chk1" value="1">す</td> </tr> </table> <input type="submit" value="チェック"> </form> </body> </html> すみませんがよろしくお願いします。

  • javascriptでチェックボックスの選択状況をチェックする方法につ

    javascriptでチェックボックスの選択状況をチェックする方法について質問です。 チェックボックスを <input type="checkbox" name="chk[]" value="1"> <input type="checkbox" name="chk[]" value="2"> のようにした場合、チェックボックスが1か所以上選択されているかどうかは、 var count = 0; for (var i=0;i<document.myform.elements['chk[]'].length;i++){ if(document.myform.elements['chk[]'][i].checked){ count++; } } if(count==0){ window.alert("チェックしてください!"); } のようにすればチェック可能ですが、inputタグで <input type="checkbox" name="chk1[]" value="1"> <input type="checkbox" name="chk1[]" value="2"> <input type="checkbox" name="chk2[]" value="A"> <input type="checkbox" name="chk2[]" value="B"> のように「name」の配列名が変化する場合はどのようにすればチェック可能でしょうか?

  • 2つのボタンによるSubmitについて

    javascript初心者です。 <form name="sample01" action="aaa.html" method="POST" >  <input type="checkbox" name="chk[]" value="1">  <input type="checkbox" name="chk[]" value="2">  <input type="checkbox" name="chk[]" value="3"> </form> このチェックボックスの値を、submitで渡したいのですが、 AボタンとBボタンの2つ設けて、それぞれクリックすると別ファイルに遷移させたいのです。 Aボタンは、「sample01」のaction属性にあるaaa.html Bボタンは、bbb.html こういったことはできるのでしょうか?

  • チェックボックスの値を(1,0)のようにすべて送信する方法

    formをsubmitすると、チェックボックスの値は、 チェックされた項目のvalue値が配列の形で送信されますよね。 たとえば、 <INPUT TYPE="CHECKBOX" NAME="C_BOX" VALUE="111" CHECKED> <INPUT TYPE="CHECKBOX" NAME="C_BOX" VALUE="222" CHECKED> <INPUT TYPE="CHECKBOX" NAME="C_BOX" VALUE="333" CHECKED> <INPUT TYPE="CHECKBOX" NAME="C_BOX" VALUE="444"> <INPUT TYPE="CHECKBOX" NAME="C_BOX" VALUE="555" CHECKED> だと、 [111,222,333,555] のように。 今回は、表形式でデータを表示し、 チェックされた行の、他の列の値(フィールド)も取得したいのです。 他の列のフィールドは、チェックされていない行でも入力されている可能性があります。 そうすると、そのフィールドの値も配列にして送ってしまうと、 チェックボックスの値と数が合わなくなり、横方向での関連付けが出来なくなってしまいます。 なので、チェックボックスの送信値を、配列の要素数は全件で、 チェックされたかされていないかということが分かるように することは不可能でしょうか? JavaScriptは規約により、使うことが出来ない状況で困っています(><) 何か案があれば教えてください。

    • ベストアンサー
    • HTML
  • チェックに応じて違うチェックボックスをアクティブにしたい

    次のHTMLのように、大分類、小分類のような構成のチェックボックス グループがあります(初期設定は全部チェック無しです) 普段は[a][b][c][d]をdisableとしておき、(1) にチェックが入った 場合に[d]以外([a][b][c])アクティブ(?とにかくチェックを入れる ことができる)ようにするにはどうしたらいいでしょうか。 よろしくお願い致します。 <form id="Form1"> : <INPUT TYPE="CHECKBOX" NAME="food" value="果物">(1) 果物 <INPUT TYPE="CHECKBOX" NAME="food" value="野菜">(2) 野菜 <INPUT TYPE="CHECKBOX" NAME="food" value="肉魚">(3) 肉魚 <br> <INPUT TYPE="CHECKBOX" NAME="fruit" value="りんご">[a] りんご <INPUT TYPE="CHECKBOX" NAME="fruit" value="みかん">[b] みかん <INPUT TYPE="CHECKBOX" NAME="fruit" value="ぶどう">[c] ぶどう <INPUT TYPE="CHECKBOX" NAME="fruit" value="バナナ">[d] バナナ : </form>

  • チェックボックスのチェックについて

    submit時に一つでもチェックがなければアラートを表示 チェックがあれば進む・・・としたいです。 <form action=next.html name=form1> <input type=checkbox name=checkbox1 value=1> <input type=checkbox name=checkbox2 value=2> <input type=checkbox name=checkbox3 value=3> <input type=checkbox name=checkbox4 value=4> <input type=checkbox name=checkbox5 value=5> ~以下50まで続きます <input type=submit value=submit> </form> function countChecked(form1) { var total = 0; var max = 50; for (var index = 0; index < form1.checkbox.length; index++) { total += form1.checkbox[index].checked ? 1 : 0; } if(countChecked(document.form1)) > 0) { return true; } else { alert("no"); return false; } return(total); } 過去に似たような質問を参考に作ってみましたがダメでした。 チェックボックスの名前の付け方が悪いのでしょうか。

専門家に質問してみよう