- ベストアンサー
checkboxの判定
初めまして、みなさんよろしくお願いします。 早速ですが質問させていただきたいと思います。 ※画面に30個程のcheckboxがあるのですが(それぞれのcheckboxには 1~30前後の番号を振っています)チェックされたcheckboxを取得する事は 出来ますでしょうか? 出来るとしたらPHPでしょうか? それともjavascriptでしょうか? ちなみにjavascriptは全く解りません。(>_<) 身勝手な質問ですが、ご教授よろしくお願いします。
- みんなの回答 (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>
その他の回答 (2)
- sjam
- ベストアンサー率41% (26/63)
checkbox をチェックした瞬間にチェックしたBOXに応じた反応をするならJavaScriptが有用です。 checkbox をチェックして決定/送信などを押した結果としてチェックしたBOXに応じた反応をするならば、大半の言語(PHP/Peal/ASP/Javascript/etcetc…)で出来ます。
お礼
sjam様お世話になっております、度々のご回答ありがとうございます。 こちらで質問することではないかもしれませんが引き続き、このカテゴリーにて質問させて頂きます。 下記のようなレアウトのテーブルがあります。 ---------------------------------------- 日付(曜日) | 労働時間 | チェックボックス | 登録ボタン ---------------------------------------- となっております。 1:日付表示はsjam様に教えて頂き、出来るようになりました。(実装済み) 2:労働時間は入力フォームにて入力(実装済み) 3:労働時間を入力し、登録ボタンを押せばDataBaseに登録される(実装済み) 4:ここで処理をチェックボックスが押されている項目だけDatabaseに 登録するようにしたのです。 しかし自分が試した限りではcheckboxを押した項目だけを取得させDatabase に登録させるという処理が出来ませんでしたので、ご教授をお願いしたく 質問させて頂きました。 よろしくお願いします。
- WildBoar
- ベストアンサー率63% (7/11)
それなりの経験者です。 チェックされたチェックボックスであるかどうかをJavaScriptの関数にて「判定」することはできます。 以下のページを参照なさってください。 「http://www.openspc2.org/reibun/javascript/」 また、「http://www.amazon.co.jp」にて、良書が見つかると思います。
お礼
返答ありがとうございます。 やはりhavascriptでの判定という事になるんですね。 紹介されたページにて勉強してみます。 良いページを紹介していただき、ありがとうございます。
お礼
sjam様、度々のご回答本当に感謝しております。 かなり頭が混乱しそうな処理ですね… 今の自分の能力では理解しきれない内容ですが、明日早速 教えていただいたコードを参考に試してみます。 毎度毎度のご教授ありがとうございます。 このカタデゴリーとは違う内容になってきましたので、再度質問させて いただく事があればPHPカテゴリーに書き込むように致します。
補足
HTMLカテゴリーで質問する内容では無くなってきたので 今度はPHPのカテゴリで再度質問させていただきます。 ありがとうございました。