• ベストアンサー

checkboxの判定

初めまして、みなさんよろしくお願いします。 早速ですが質問させていただきたいと思います。 ※画面に30個程のcheckboxがあるのですが(それぞれのcheckboxには 1~30前後の番号を振っています)チェックされたcheckboxを取得する事は 出来ますでしょうか? 出来るとしたらPHPでしょうか?  それともjavascriptでしょうか? ちなみにjavascriptは全く解りません。(>_<) 身勝手な質問ですが、ご教授よろしくお願いします。

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

  • ベストアンサー
  • sjam
  • ベストアンサー率41% (26/63)
回答No.3

この例では、最大で1度の動作で62回(31日×読み込み&書き込み)ものデータベースへのアクセスが発生しますが、これを参考に作り替えて下さい。 <?php if($_POST['ps']) { // パスワードのチェック:エラーならbreak;する for($ct=0; $ct<32; $ct++){ if($_POST['check'.$ct]){ // checkboxがon の時だけTRUE // $_POST['check'.$ct] (日付を示すタイムスタンプ) // で示されるレコードに対して、 // $_POST['kinmu'.$ct] (勤務時間:入力) // $_POST['tikoku'.$ct] (遅刻時間:入力) // $_POST['zangyo'.$ct] (残業時間:入力) // $_POST['etc'.$ct] (その他:入力) // を、データベースに反映(追加、又は変更)する処理を書く } } } ?> <html><head><title>労務管理</title></head><body> <h1>労務管理</h1> <form action="roumu.php" method="POST">  [ 日 付 ]勤務時間 / 遅刻時間 / 残業時間 / その他<br> <?php $timestamp = strtotime(date('15 F Y 12:00:00')); $ct = 0; while(date('n')==date('n',$timestamp) || date('d',$timestamp)!='15') { // $timestamp (日付を示すタイムスタンプ) // で示されるレコードをデータベースから読み込む // $kinmu に勤務時間 // $tikoku 遅刻時間 // $zangyo 残業時間 // $etc その他 ?> <input type="checkbox" name="check<?=$ct?>" value="<?=$timestamp?>"> <?=strftime('%y/%m/%d (%a) ',$timestamp);?> <input type="text" name="kinmu<?=$ct?>" size="8" value="<?=$kinmu?>"> <input type="text" name="tikoku<?=$ct?>" size="8" value="<?=$tikoku?>"> <input type="text" name="zangyo<?=$ct?>" size="8" value="<?=$zangyo?>"> <input type="text" name="etc<?=$ct?>" size="20" value="<?=$etc?>"><br> <?php $timestamp += (60 * 60 * 24); $ct++; } ?> <input type="password" name="ps" size="8" value="<?=$_POST['ps'];?>"> <input type="submit"> </form>

destonias
質問者

お礼

sjam様、度々のご回答本当に感謝しております。 かなり頭が混乱しそうな処理ですね… 今の自分の能力では理解しきれない内容ですが、明日早速 教えていただいたコードを参考に試してみます。 毎度毎度のご教授ありがとうございます。 このカタデゴリーとは違う内容になってきましたので、再度質問させて いただく事があればPHPカテゴリーに書き込むように致します。

destonias
質問者

補足

HTMLカテゴリーで質問する内容では無くなってきたので 今度はPHPのカテゴリで再度質問させていただきます。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • sjam
  • ベストアンサー率41% (26/63)
回答No.2

checkbox をチェックした瞬間にチェックしたBOXに応じた反応をするならJavaScriptが有用です。 checkbox をチェックして決定/送信などを押した結果としてチェックしたBOXに応じた反応をするならば、大半の言語(PHP/Peal/ASP/Javascript/etcetc…)で出来ます。

destonias
質問者

お礼

sjam様お世話になっております、度々のご回答ありがとうございます。 こちらで質問することではないかもしれませんが引き続き、このカテゴリーにて質問させて頂きます。 下記のようなレアウトのテーブルがあります。 ---------------------------------------- 日付(曜日) | 労働時間 | チェックボックス | 登録ボタン ---------------------------------------- となっております。 1:日付表示はsjam様に教えて頂き、出来るようになりました。(実装済み) 2:労働時間は入力フォームにて入力(実装済み) 3:労働時間を入力し、登録ボタンを押せばDataBaseに登録される(実装済み) 4:ここで処理をチェックボックスが押されている項目だけDatabaseに 登録するようにしたのです。 しかし自分が試した限りではcheckboxを押した項目だけを取得させDatabase に登録させるという処理が出来ませんでしたので、ご教授をお願いしたく 質問させて頂きました。 よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • WildBoar
  • ベストアンサー率63% (7/11)
回答No.1

それなりの経験者です。 チェックされたチェックボックスであるかどうかをJavaScriptの関数にて「判定」することはできます。 以下のページを参照なさってください。 「http://www.openspc2.org/reibun/javascript/」 また、「http://www.amazon.co.jp」にて、良書が見つかると思います。

参考URL:
http://www.openspc2.org/reibun/javascript/
destonias
質問者

お礼

返答ありがとうございます。 やはりhavascriptでの判定という事になるんですね。 紹介されたページにて勉強してみます。 良いページを紹介していただき、ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • checkboxの判定について

    ラジオボタンを2つ用意しそれぞれに値をいれれば容易なことなのですが checkbox1つでチェックの判定をしチェックされていればvalueにyesをいれ チェックが外されていればvalueにno(nullでしょうか?)を入れたいのですが その場合は、どのようなソースにすれば可能でしょうか? 教えてgooの新規会員登録がこのような形式だったので興味がありやってみたのですが なかなかうまくできません・・・ 現状は下記のソースなのですがvalueの値を分岐することで実現できそうなものの いまいちわからない状態です^^; <input type="checkbox" name="magazin" value="yes" <?php if (isset($_SESSION['magazin']) && $_SESSION['magazin'] == 'yes'){ echo 'checked'; }?>>配信メールを希望する。

    • 締切済み
    • PHP
  • checkboxについて

    下のように初期状態でcheckboxにチェックされているのを buttonのresetをおすとjavascriptでチェック解除するということはできますか? <INPUT TYPE="checkbox" name="check_no1" checked>

  • ラジオボタンのチェックを判定したいです。

    phpとhtmlを使用して、ラジオボタンをいくつか作成したとします。 どのラジオボタンが選択されているかを判定する場合、通常ラジオボタンのvalueの値が、ある値と一致するかどうかで判定しますが、そうではなく、逆にチェックが入っているラジオボタンのvalue値を取得したい場合、どのようにすればいいのでしょうか? ちなみに、javascriptは使用したくないです。理由は、その値を再びphpの画面で使いたいからです。 もし、javascriptで取得した値をphpの画面に渡せれば、javascriptを使用してもOKなのですが、なかなか上手く渡せないようなので。。。 ご教授お願い致します。

    • ベストアンサー
    • PHP
  • Checkboxの数え方

    完全な素人です 1つのGroupBox内にある複数のCheckboxの中から チェックされているCheckboxの数を数えたいのですが どうしたらいいのでしょうか? ちなみにGroupBoxも複数あります どなたか教えてください、宜しくお願いします。

  • javascript checkbox

    完全に初心者です。。 下記のスクリプトをもとに、 ■チェックAをチェックしたら全てチェックされる ■またチェックAをチェックしたら全て外れる ようにしたいです。。 でも何がダメか分かりません。。 一部を書くのではなく出来ればスクリプト全ていただけたらと思います。 あともし宜しければチェックAをチェックしたら、1~6をチェックできないようにもしたいです。。 ご教授よろしくお願いします。。 <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <TITLE></TITLE> <SCRIPT language="JavaScript"> function check(){ for(i=1; i<7; i++){ document.form1.elements[ch[i]].checked = true; } } </SCRIPT> </HEAD> <BODY> 全てのチェックボックスをチェック/解除 <FORM name="form1"> <p><INPUT type="checkbox" id="ch" onclick="check()">チェックA</p>   <INPUT type="checkbox" id="ch1">チェック1   <INPUT type="checkbox" id="ch2">チェック2   <INPUT type="checkbox" id="ch3">チェック3<BR><BR>   <INPUT type="checkbox" id="ch4">チェック4   <INPUT type="checkbox" id="ch5">チェック5   <INPUT type="checkbox" id="ch6">チェック6<BR><BR>   <BR> </FORM> </BODY> </HTML>

  • checkboxにチェックを入れると項目が表示される

    教えて下さい。 チェックボックスにチェックを入れると、idやclassで指定されている範囲をjavascriptでリアルタイムに表示させたいのですが、どのようにすればよいでしょうか? 例えば、AというチェックボックスとBというチェックボックスがあって↓ <form name="000"> <input type="checkbox" id="chk1" />チェック1 <input type="checkbox" id="chk2" />チェック2 </form> チェックが入ると、指定した任意のid属性が表示されるようにしたいんです。 例えば、チェック1のチェックボックスにチェックが入ったら"forChk1"を、チェック2にチェックが入ったら"forChk2"みたいな。 <span id="forChk1">チェック1に関する項目</span> <span id="forChk2">チェック2に関する項目</span> javascriptのonClickで実現する方法になるのでしょうか? どなたかご教授頂けると光栄ですm(_ _)m

  • Javascript checkboxの入力チェックをしたい

    Javascriptで、checkboxにチェックが入っていない 場合、submitボタンを押した時に、 「○○にチェックが入っていません」との表示を 出すようにしたいと思います。 入力チェック用のスクリプトを教えて下さい。

  • checkboxの初期値設定(postの時)

    php初心者です。 以下はどのようにやればいいのでしょうか。 色々調べたのですが、考え方がわからず困っています。 (やりたい事) (1)入力画面(index.php)にチェックボックス (赤、青、黄、緑)つくる (2)確認画面(confirm.php)にpostで飛ばす (3)修正があれば、index.phpに戻るが、 チェックしたものが保持された状態で 戻る。 このような事をしたいのですが、以下で手が止まって しまいました。 ◆index.php <?php <form method="post" action="confirm.php"> <input type="checkbox" name="colors[]" value="赤">赤 <input type="checkbox" name="colors[]" value="青">青 <input type="checkbox" name="colors[]" value="黄">黄 <input type="checkbox" name="colors[]" value="緑">緑 <input type="submit" value="送る"> </form> ?> ◆confirm.php <?php  <form method="post" action="index.php">  foreach ($_POST['colors'] as $color){  echo $color ." /"; } <input type="submit" value="戻る"> </form> ?> これをどう加工していけばよいか、よろしくお願いします。

    • ベストアンサー
    • PHP
  • Checkboxでの規約認証

    始めまして 只今、すごく困っています。。。 分かる方ヒントでも頂けたら幸いです。。。 よくHP上で利用規約に同意するcheckboxってありますよね。 現在独自に作成していたのですが、CHECKBOXが一つだけでPOSTで 受け渡しをしようとしているのですが、うまくいきません。。 ご教授お願い致します。 <input name="check" type="checkbox" value="1"/> <strong>同意する</strong> HTMLにはこのように書いています。 次ページのPHP側で //同意チェック $ErrFlg = 0; if ($check == "") { echo "<p>同意いただけない場合、お問い合わせできません。"; $ErrFlg = 1; } if ($ErrFlg) { exit(); このようにチェックをしていない場合はエラーを返そうとしています。 ですが、POSTで受け取った後、print_rで中身を確認しようとしても 空っぽの状態です。 初心者なもので、ドコがおかしいかも検討がつきません。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • []を付けずにcheckboxの値を複数受信

    カテゴリをPHPとするか迷いましたが、 こちらに質問させていただきます。 <input type="checkbox" name="hiragana[]" value="a">あ <input type="checkbox" name="hiragana[]" value="i">い <input type="checkbox" name="hiragana[]" value="u">う とした場合、 $checked=$_POST['hiragana']; print_r($checked); などとして使えることはわかるのですが、 角括弧をつけず、 <input type="checkbox" name="hiragana" value="a">あ <input type="checkbox" name="hiragana" value="i">い <input type="checkbox" name="hiragana" value="u">う としたときに、同様に配列として取得する(すべてのチェックされた項目を取得する) 方法はあるのでしょうか? このようにした場合、 $checked=$_POST['hiragana']; print_r($checked); や print_r($_POST); すると、最後にチェックされた値しか入っていないようです。 (上書きされているようですが...) HTTPヘッダを見ると、 hiragana=a&hiragana=i&hiragana=u のように、すべて送信はされているのは確認できるのですが... 後者のような角括弧をつけていないタイプのcheckboxを使って ちゃんとチェックされた値をすべて受信して動作していると 思われるサイトを目にするので どうすればできるのかと思い質問させて頂きました。 よろしくお願いいたします。

    • ベストアンサー
    • HTML