• 締切済み

チェックボックスのチェック保持

チェックボックスでチェックされた項目で検索を行いたいです。 検索後は、チェックを保持させておきたくjavascriptとcookieを使用すればできるのかなと思うのですが、うまくいきません。 できればチェックボックスのnameは別々にしたいのですが、どなたかご教授いただけるとうれしいです。よろしくお願いします。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

おそらくcookieについても理解が浅いのでしょうね 本件についてはチェックボックスのnameがそのページでユニーク であるという条件が必要です。 あとはこんなかんじ <script> window.onload=function(){ var tags=document.getElementsByTagName("input"); for(var i=0;i<tags.length;i++){ if(tags[i].type=="checkbox"){ tags[i].checked=getCookie(tags[i].name); } } } try{ document.addEventListener('click',function(e){clickFunc(e)},true); }catch(e){ document.attachEvent('onclick',function(e){clickFunc(e)}); } function clickFunc(e){ var t= (e.srcElement || e.target); if(t.nodeName=="INPUT" && t.type=="checkbox"){ if(t.checked) setCookie(t.name,1); else delCookie(t.name); } } function setCookie(key,val){ var tmp = key+"="+escape(val)+";"; tmp += "expires=Fri, 31-Dec-2030 23:59:59;"; document.cookie = tmp; }; function getCookie(key){ var tmp = document.cookie+";"; var tmp1 = tmp.indexOf(key,0); var ret=false; if(tmp1 != -1){ tmp = tmp.substring(tmp1,tmp.length); var start = tmp.indexOf("=",0); var end = tmp.indexOf(";",start); ret=unescape(tmp.substring(start+1,end)); } return ret; }; function delCookie(key){ var expiredate = new Date(); expiredate.setYear(expiredate.getYear()-1); var tmp = key+"=;"; tmp += "expires="+expiredate.toGMTString(); document.cookie = tmp; }; </script> <input type="checkbox" name="hoge">hoge <input type="checkbox" name="fuga">fuga <input type="checkbox" name="piyo">piyo

sasakikou
質問者

お礼

yambejpさん、回答ありがとうございます。 教えて頂いたコードでできました。初心者のためまだ中身を理解できていませんが、頑張って見ていきたいと思います。 本当にありがとうございました。

関連するQ&A

  • チェックボックスのチェック済みを保持

    PHPを使ってフォームのチェックボックスの初期値にチェック済みでページを表示させ、そのチェックを外してサブミットし、同ページにリロードした際、セッションを使ってチェックを外した状態を保持しようとしているのですがうまくいきません。 チェックを外した状態でリロードしてもチェックがついた状態で表示されてしまいます、チェックを外した状態を保持表示させるにはどのように記述すればよいのでしょうか ご教授宜しくお願いします。 【PHP】 session_start(); $event = $_POST[ 'event' ]; $_SESSION[ 'event' ] = $event; if(!empty($event)){ $event_on = 'checked';} 【フォーム】 <form action="./" method="post" name="chbox"> <input type="checkbox" name="event" id="event" value="event" $event_on >イベント <button class="btn" onClick="boxCheck()" >表示</button> </form> 環境 php5.3 html5 javascriptのlocalStrage等を使ったほうが実装が現実的なら、検討いたします。

    • 締切済み
    • PHP
  • PEAR::Pagerでチェックボックスデータを保持したいです。

    PEAR::Pagerでチェックボックスデータを保持したいです。 CentOS 5.0 PHP 5.1.6 携帯サイトを作っています。 画像を一覧で表示しているページで、各画像に チェックボックスを付けチェックの入った画像を 次のページで表示しています。 登録されている画像が10枚以上ある場合は、 PEAR::Pagerを使ってページングしているのですが、 2ページ目、3ページ目と遷移した場合にチェックボックスの データを保持する方法をご教授願いたいのです。 ページングはaタグでリンクしていますので、POSTの値を 保持する方法はどうしたもんかと・・・。 携帯なのでjavascriptも使えないので大変困っております。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • 検索時の選択内容を保持する方法

    質問失礼致します。 PHPで ・テキスト ・ラジオボタン ・チェックボックス が複数入り混じった検索システムを作っています。 なんとか形になって検索の形はできたのですが、 必要な項目を検索し結果画面に映った際に 入力したテキスト・ラジオ・チェックボックスの内容が初期化されてしまいます。 検索した結果、テキストの方はインプット時に <input type="text" name="name" size="50" value="<?= $_POST['name'] ?>" > とすることで、結果画面にある検索システムの入力内容は保持できたのですが、 ・ラジオ および ・チェックボックス の内容の保持を なんとかまとめて設定することはできないでしょうか? 検索はしましたが、初心者なこともあり検索ワードがいまいち的を得てないのか、 考えている答えになかなかたどり着けておりませんので、 この場を借りて質問の方させていただいた次第でございます。 ご存じの方いらっしゃいましたら、是非ともご教授お願い致します。

    • ベストアンサー
    • PHP
  • JavaScriptにて、2つのチェックボックスのチェックができません

    お世話になっております。 お分かりになる方いらっしゃいましたら、ご教授願えますでしょうか? 現在採用に関する応募フォームを作成しています。 JavaScriptにてフォーム内のチェックボックスに チェックが入っているか、必須チェックをさせたいと思っています。 テキストボックスやコンボボックスなど、いくつか必須チェックがある中で、 チェックボックスの項目についての必須チェックがうまくいきません。 チェック完了後、cgiにてメールを送信するようにしているのですが、 チェックがされず、メールを送信してしまいます。 ローカルで行ってみたのですが、チェックをスルーして、 cgiに遷移してしまいます。 フォームイメージは以下の感じです。 <応募フォーム> --------------------------- 希望勤務地:□本社 □大阪 --------------------------- 2つのチェックボックスどちらにもチェックが入っていない場合は、 エラーメッセージを出し、処理を中止します。 どちらのチェックボックスにもチェックが入っていても、 エラーは出さずにcgiへ遷移します。 以下は現在のコードの内容です。 <HTMLコード> <form method="POST" action="send.cgi" name="応募フォーム" onSubmit="return check()"> <input type="checkbox" name="希望勤務地" value="本社" checked>本社 <input type="checkbox" name="希望勤務地" value="大阪">大阪 <input type="submit" value=" 送信 "> <input type="reset" value=" 取消 "> <Scriptコード> function check(){ if(!document.応募フォーム.希望勤務地.value.checked){ flag = 1; window.alert('必須項目[希望勤務地]にチェックがされていません'); } } 色々試してみたのですが、うまくいきませんでした。 チェックボックスのnameを同じ名前にしているのが原因でしょうか? お手数ですが、宜しくお願いいたします。

  • 入力チェックでの値の保持

    php(Version 4.3.11)でフォームの入力チェックを含んだ部分を作成しております。 1. aaa.phpにてデータ入力 2. bbb.phpにて入力されたデータの整合性をチェック    チェックを通ればccc.phpへ    チェックに引っかかればaaa.phpへ戻る ・・・※ ※において、aaa.phpにて入力されたデータを保持したいのですが、どよのうにするのが標準なのでしょうか? (「趣味」項目のテキストボックスに「ドライブ」と入力されていたら、aaa.phpに戻ったとき、「趣味」項目のテキストボックスに「ドライブ」をセットしたい。) 入力項目はかなり多いので、 Location:a.php? で引き継ぐのも良くないと思ってます。 今まではaspでイントラネットの開発ばかりだったので、全部JavaScriptで行っていました。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 複数のチェックボックスをチェックしたい

    質問させてください。 複数のチェックボックスを項目別に全てチェックするようなjqueryの書き方をご教授いただきたいです。 <table> <tr> <td> <input type="checkbox" name="" />まとめてチェック </td> </tr> <tr> <td> <li><input type="checkbox" name="" value="" />a</li> <li><input type="checkbox" name="" value="" />b</li> <li><input type="checkbox" name="" value="" />c</li> <li><input type="checkbox" name="" value="" />d</li> </td> </tr> <tr> <td> <input type="checkbox" name="" />まとめてチェック </td> </tr> <tr> <td> <li><input type="checkbox" name="" value="" />e</li> <li><input type="checkbox" name="" value="" />f</li> <li><input type="checkbox" name="" value="" />g</li> <li><input type="checkbox" name="" value="" />h</li> </td> </tr> <tr> <td> <input type="checkbox" name="" />まとめてチェック </td> </tr> <tr> <td> <li><input type="checkbox" name="" value="" />i</li> <li><input type="checkbox" name="" value="" />j</li> <li><input type="checkbox" name="" value="" />k</li> <li><input type="checkbox" name="" value="" />l</li> </td> </tr> </table> 上記のようにそれぞれの項目に「まとめてチェック」のチェックボックスがあり、 そこに該当するチェック項目は全てチェックorチェックを外す っという挙動の実装を考えています。 jqueryでやりたいのですが、javascript、jqueryがかなり苦手でいまいちいきません。 ググって $(function(){ $('#all').click(function(){ if(this.checked){ $('#check input').attr('checked','checked'); }else{ $('#check input').removeAttr('checked'); } }); }); このソースを見つけたのですが、これだと一つの項目でしか実装できず 項目分このjqueryを書くのも余り良い書き方だと思えません。 どなたか、ご教授お願いいたします。

  • チェックボックスの使い方

    VBスクリプトでよくわからないところがあるので教えてください。たくさんのチェックボックスがあるので、For i To ~Next の構文を使って効率よくチェックされたものだけSQLの構文に取り入れて検索しようとしたのですがうまくゆきません。どのようにしたらよいでしょうか。 今試してみたのは、検索条件の設定画面で、 <input type=checkbox name=tatemono(0) value=自社使用>自社使用 <input type=checkbox name=tatemono(1) value=事業用>事業用 <input type=checkbox name=tatemono(2) value=電算センター >電算センター というようなチェックボックスを 検索処理用ページで SQL="SELECT * FROM [データ] " 'チェックボックスのチェック数が0でなければWHERE文をいれるflagをTrueにしておく If Request.Form("tatemono").Count>0 Then SQL=SQL & "WHERE " flag=True End If 'チェックボックスを最初から調べてチェックされていたらその項目がyesになっているという条件をSQL文に追加する For i=1 To Request.Form("tetemono").Count If Request.Form("tatemono")(i)<>"" Then fldname=Request.Form("tetemono")(i) If flag=True Then SQL = SQL & "AND" Else SQL = SQL & "WHERE" End If SQL= SQL & fldname & "=Yes" End If Next とやってみたのですが、ぜんぜん駄目みたいです。 根本的にどこか間違ってますよね・・・。 直すところを教えてください。 お願いします。

  • チェックボックスを選択するとテキストボックスが表示

    質問失礼します。 チェックボックスが下記のようにある場合ですが、 どれかではなく複数選択で テキストボックスを表示させるにはどうしたらよいでしょうか? <input type="checkbox" name="example" value="" />テレビ ←チェックしたらテキストボックス表示 <input type="checkbox" name="example" value="" />新聞 ←チェックしたらテキストボックス表示 <input type="checkbox" name="example" value="" />CM ←チェックしたらテキストボックス表示 <input type="checkbox" name="example" value="" />その他 ←チェックしたらテキストボックス表示 色々なJavaScriptを試したのですが、 どうも挙動がおかしく、クリックを続けると表示がされたりできなかったり、 という具合になります。 それぞれテキストボックスを表示させたいチェックボックスに 反映できるJavaScriptをご教示願いますでしょうか? 宜しくお願い致します。

  • 複数のチェックボックス&配列にランダムな数字

    こんにちは。PHP学習中のものですが、今回はこちらで質問させていただきます。 現在、複数のチェックボックスをワンクリックですべて選択する方法を調べています。 チェックボックスのNAMEがすべて同じ場合は、ちょっと検索すれば、すぐにサンプルスクリプトがたくさんヒットします。 複数選択可能なチェックボックスの場合も、document.form1.elements["sample_check[]"] というような記述で、チェックボックスの数がカウントできるということまでは判りました。 しかし、現在わたしが扱っているチェックボックス(下記をご参照ください)には、sampla_check[3] のように規則性のない数字が入っているのです。 (この数字を送信先で受けて、それをもとにmySQLのデータを更新するので省略できません) このような場合、どのようにしたら「チェックボックスをすべて選択」する機能を実装できるでしょうか。 本来、javascriptの入門書でも購入して、自分で学習すべき範疇のことかと思いますが、今すぐ答えが必要なので、どなたかお助けいただけないでしょうか。 <INPUT TYPE="checkbox" NAME="sample_check[3]" VALUE="TRUE"> 項目(3) <INPUT TYPE="checkbox" NAME="sample_check[7]" VALUE="TRUE"> 項目(7) <INPUT TYPE="checkbox" NAME="sample_check[12]" VALUE="TRUE"> 項目(12)

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

    <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の 書き方を教えて貰えないでしょうか

専門家に質問してみよう