例
バイトのシフトテーブル
| id | name | number |
|---|---|---|
| 1 | 平日 | 62 |
| 2 | 休日 | 65 |
| 3 | 月水金 | 42 |
コード(jQuery)
See the Pen zYYEJoM by ikeou (@ikeou3) on CodePen.
やっていること
月・水・金(例のid:3)をチェックした場合
①各チェックボックスのvalueを取得し合計を算出
月曜:2 + 水曜:8 + 金曜:32 = 42
②合計値をDBに登録(今回は割愛)
③DBからデータを取得(今回は割愛)
④取得してきたデータを二進法表記に変更
42 → 101010
⑤二進法表記を7桁に修正
101010 → 0101010
⑥各桁の値を取得
⑦取得してきた値が「1」の桁をピックアップ
0101010
2,4,6桁目
⑧十進法に戻す(コードでは曜日の配列と突合)
2桁目が1 → 0000010 → 2 → 月曜
4桁目が1 → 0001000 → 8 → 水曜
6桁目が1 → 0100000 → 32 → 金曜
参考
| 十進法 | 二進法 | |
|---|---|---|
| 日曜日 | 1 | 0000001 |
| 月曜日 | 2 | 0000010 |
| 火曜日 | 4 | 0000100 |
| 水曜日 | 8 | 0001000 |
| 木曜日 | 16 | 0010000 |
| 金曜日 | 32 | 0100000 |
| 土曜日 | 64 | 1000000 |