現在、大学の履修登録機能の実装を目指しております。
★実装機能、情報★
❶学生(学部、名前、パス)、講師(名前、学部)、講義(開講日時、担当講師、受講可能学部、単位数)が存在する
*学生のパスはログイン時に使用
❷学生の履修登録時には、学生の学部と講義の受講可能学部が一致した講義のみを学生に選択させる。
❸❷の実行時には開講日時による絞り込みをする、(例MOn2,Tue3,Fri1など)
❹単位数が4のクラスは週に2回のクラスがある。(例economics講義はTue2とFri4の開講である)
というのが大まかな情報です。ちなみに実装は完了しております。
★問題点★
経済学部の学生がログインするとeconomics講義(Tue2とFri4による週2回講義)が選択可能ですがその際、Tue2(Fri4)のeconomics講義をセレクトで選択するとJSでFri4(Tue2)も選択された状態にしたいのですが、その際のJSの書き方がわかりません。答えを頂戴する場所ではないみたいですが実際のコードを添えていただけると助かります。
★備考★
大変長くなっておりますが、解決したいのはJSの部分のみです。回答者様が実際にコードを確認される際の為に全て載せております。
またデータが多すぎため質問を分割し、データを貼ります。
SQL
1CREATE TABLE `students` ( 2 `student_id` varchar(6) NOT NULL, 3 `studentname` varchar(100) NOT NULL, 4 `pass` varchar(100) NOT NULL, 5 `major` enum('AD01','EC01','ED01','EL01','EL02','IS01','LA01') DEFAULT NULL 6) ENGINE=InnoDB DEFAULT CHARSET=utf8; 7 8-- 9-- Dumping data for table `students` 10-- 11 12INSERT INTO `students` (`student_id`, `studentname`, `pass`, `major`) VALUES 13('AD0001', 'Frank', 'temp', 'AD01'), 14('AD0002', 'Fox', 'temp', 'AD01'), 15('AD0003', 'Ross', 'temp', 'AD01'), 16('AD0004', '井上建', 'temp', 'AD01'), 17('AD0005', 'Bob', 'temp', 'AD01'), 18('ED0001', 'Emilly', 'temp', 'ED01'), 19('ED0002', 'Fan', 'temp', 'ED01'), 20('ED0003', 'Hanks', 'temp', 'ED01'), 21('ED0004', 'Ellen', 'temp', 'ED01'), 22('ED0005', 'Tom', 'temp', 'ED01'), 23('EL0001', '浜田省吾', 'temp', 'EL01'), 24('EL0002', 'David', 'temp', 'EL01'), 25('EL0003', 'Rora', 'temp', 'EL01'), 26('EL0004', 'Tim', 'temp', 'EL01'), 27('EL0005', 'Ron', 'temp', 'EL01'), 28('EL2001', '野村祐輔', 'temp', 'EL02'), 29('EL2002', 'Tobby', 'temp', 'EL02'), 30('EL2003', 'Nancy', 'temp', 'EL02'), 31('EL2004', 'Lisa', 'temp', 'EL02'), 32('EL2005', 'Serena', 'temp', 'EL02'), 33('IS0001', 'Chandler', 'temp', 'IS01'), 34('IS0002', '中井悠太', 'temp', 'IS01'), 35('IS0003', 'Mike', 'temp', 'IS01'), 36('IS0004', '王建民\r\n', 'temp', 'IS01'), 37('IS0005', 'Monica', 'temp', 'IS01'), 38('LA0001', 'Joye', 'temp', 'LA01'), 39('LA0002', 'Rachel', 'temp', 'LA01'), 40('LA0003', 'Ken', 'temp', 'LA01'), 41('LA0004', 'Tag', 'temp', 'LA01'), 42('LA0005', 'Carol', 'temp', 'LA01'); 43 44-- 45-- Indexes for dumped tables 46-- 47 48-- 49-- Indexes for table `students` 50-- 51ALTER TABLE `students` 52 ADD PRIMARY KEY (`student_id`); 53
SQL
1CREATE TABLE `teachers` ( 2 `teacher_id` int(11) NOT NULL, 3 `teachername` varchar(50) NOT NULL, 4 `department` enum('AD01','EC01','ED01','EL01','EL02','IS01','LA01','NONE') NOT NULL 5) ENGINE=InnoDB DEFAULT CHARSET=utf8; 6 7-- 8-- Dumping data for table `teachers` 9-- 10 11INSERT INTO `teachers` (`teacher_id`, `teachername`, `department`) VALUES 12(1, '西川憲二', 'AD01'), 13(2, '斎藤みき', 'AD01'), 14(3, 'TomHanks', 'AD01'), 15(4, 'Matthew Perry', 'EC01'), 16(5, 'Matt Leblanc', 'EC01'), 17(6, 'Jennifer Aniston', 'EC01'), 18(7, 'Courteney Cox', 'EL01'), 19(8, '町史寛二', 'EL01'), 20(9, 'Irfan Khan', 'EL01'), 21(10, 'Chu Yu-hsien', 'EL01'), 22(11, 'Chen Chieh-hsien', 'EL02'), 23(12, 'C.C.Lee', 'EL02'), 24(13, 'Bill Clinton', 'EL02'), 25(14, 'Will Smith', 'IS01'), 26(15, 'Liv Tyler', 'IS01'), 27(16, 'Kim Kardashian', 'IS01'), 28(17, 'Katy Perry', 'IS01'), 29(18, 'Julia Roberts', 'LA01'), 30(19, 'Ben Affleck', 'LA01'), 31(20, 'Jodie Foster', 'LA01'), 32(21, 'Al Gore', 'LA01'), 33(22, 'Ellen DeGeneres', 'NONE'), 34(23, '十亀 新一', 'NONE'), 35(24, 'Kanye West', 'NONE'), 36(25, 'Miley Cyrus', 'NONE'), 37(26, 'Mel Gibson', 'AD01'), 38(27, 'John F.kennedy', 'EC01'), 39(28, 'Charlie Sheen', 'ED01'), 40(29, 'Paris Hilton', 'ED01'), 41(30, 'Britney Spears', 'ED01'), 42(31, 'Eric Geller', 'EC01'), 43(32, 'Yuta Nakai', 'EC01'); 44 45-- 46-- Indexes for dumped tables 47-- 48 49-- 50-- Indexes for table `teachers` 51-- 52ALTER TABLE `teachers` 53 ADD PRIMARY KEY (`teacher_id`); 54 55-- 56-- AUTO_INCREMENT for dumped tables 57-- 58 59-- 60-- AUTO_INCREMENT for table `teachers` 61-- 62ALTER TABLE `teachers` 63 MODIFY `teacher_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=33; 64
SQL
1CREATE TABLE `majors` ( 2 `code` enum('AD01','EC01','ED01','EL01','EL02','IS01','LA01') NOT NULL, 3 `name` varchar(20) NOT NULL 4) ENGINE=InnoDB DEFAULT CHARSET=utf8; 5 6-- 7-- Dumping data for table `majors` 8-- 9 10INSERT INTO `majors` (`code`, `name`) VALUES 11('AD01', '広告'), 12('EC01', '経済'), 13('ED01', '教育'), 14('EL01', '電機'), 15('EL02', '電子'), 16('IS01', '情報システム'), 17('LA01', '法律'); 18 19-- 20-- Indexes for dumped tables 21-- 22 23-- 24-- Indexes for table `majors` 25-- 26ALTER TABLE `majors` 27 ADD PRIMARY KEY (`code`); 28
SQL
1CREATE TABLE `classes` ( 2 `class_id` int(11) NOT NULL, 3 `classname` varchar(100) NOT NULL, 4 `teacher_id` int(11) NOT NULL, 5 `credit` int(11) NOT NULL 6) ENGINE=InnoDB DEFAULT CHARSET=utf8; 7 8-- 9-- Dumping data for table `classes` 10-- 11 12INSERT INTO `classes` (`class_id`, `classname`, `teacher_id`, `credit`) VALUES 13(1, 'How to use java', 14, 2), 14(2, 'How to use PHP', 15, 2), 15(3, 'How to use C++', 16, 2), 16(4, 'How to use Ruby', 17, 2), 17(5, 'Medieval philosophy', 28, 2), 18(6, 'Economics', 4, 4), 19(7, 'About basic advertising', 1, 2), 20(8, 'Different types of advertising methods', 2, 2), 21(9, 'Basic psychology', 29, 2), 22(10, 'Roman history', 25, 2), 23(11, 'Civil engineering', 11, 2), 24(12, 'Electronic engineering', 12, 2), 25(13, 'Electrical engineering', 9, 2), 26(14, 'Basic engineering', 10, 2), 27(15, 'Making web systems with PHP language', 15, 2), 28(16, 'How to learn Coding', 14, 2), 29(17, 'Mathematics', 30, 2), 30(18, 'Linguistics', 29, 4), 31(19, 'Japanese language', 23, 1), 32(20, 'Spanish language', 24, 1), 33(21, 'English discussion', 30, 2), 34(22, 'Basic law', 18, 2), 35(23, 'International law', 19, 2), 36(24, 'Corporate law', 20, 2), 37(25, 'Basic education', 28, 2), 38(26, 'Secondary education', 30, 2), 39(27, 'About the knowledge of infancy', 28, 2), 40(28, 'The way of getting children excited', 29, 2), 41(29, 'Contemporary economics', 5, 2), 42(30, 'Math of economics', 6, 2), 43(31, 'Color schema in business', 3, 2), 44(32, 'The art', 26, 2), 45(35, 'About Problems of electricity that cities have', 8, 2), 46(36, 'Electric power', 7, 2), 47(37, 'Making electronic products', 13, 2), 48(38, 'American law', 21, 2), 49(39, 'Economic effectiveness', 27, 2), 50(40, 'Olympic economy', 31, 4), 51(41, 'Seles in economy', 32, 2); 52 53-- 54-- Indexes for dumped tables 55-- 56 57-- 58-- Indexes for table `classes` 59-- 60ALTER TABLE `classes` 61 ADD PRIMARY KEY (`class_id`); 62 63-- 64-- AUTO_INCREMENT for dumped tables 65-- 66 67-- 68-- AUTO_INCREMENT for table `classes` 69-- 70ALTER TABLE `classes` 71 MODIFY `class_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=42; 72
SQL
1CREATE TABLE `classdates` ( 2 `classdate_id` int(11) NOT NULL, 3 `class_id` int(11) NOT NULL, 4 `teacher_id` int(11) NOT NULL, 5 `date` enum('Mon1','Mon2','Mon3','Mon4','Mon5','Tue1','Tue2','Tue3','Tue4','Tue5','Wed1','Wed2','Wed3','Wed4','Wed5','Thu1','Thu2','Thu3','Thu4','Thu5','Fri1','Fri2','Fri3','Fri4','Fri5') DEFAULT NULL 6) ENGINE=InnoDB DEFAULT CHARSET=utf8; 7 8-- 9-- Dumping data for table `classdates` 10-- 11 12INSERT INTO `classdates` (`classdate_id`, `class_id`, `teacher_id`, `date`) VALUES 13(1, 1, 14, 'Mon5'), 14(2, 2, 15, 'Mon5'), 15(3, 3, 16, 'Mon1'), 16(5, 4, 17, 'Fri1'), 17(6, 5, 28, 'Wed1'), 18(7, 6, 4, 'Tue2'), 19(10, 6, 4, 'Fri4'), 20(11, 7, 1, 'Thu1'), 21(12, 8, 2, 'Mon1'), 22(13, 9, 29, 'Tue1'), 23(14, 10, 25, 'Thu4'), 24(15, 11, 11, 'Mon5'), 25(16, 12, 12, 'Fri4'), 26(17, 13, 9, 'Fri3'), 27(18, 14, 10, 'Tue5'), 28(19, 15, 15, 'Thu4'), 29(20, 16, 14, 'Wed1'), 30(21, 17, 30, 'Wed2'), 31(22, 18, 29, 'Mon4'), 32(23, 19, 23, 'Thu2'), 33(24, 20, 24, 'Tue3'), 34(26, 21, 30, 'Wed3'), 35(27, 22, 18, 'Mon2'), 36(28, 23, 19, 'Mon3'), 37(29, 24, 20, 'Tue5'), 38(30, 25, 28, 'Wed4'), 39(31, 26, 30, 'Wed5'), 40(32, 18, 29, 'Tue3'), 41(33, 27, 28, 'Tue4'), 42(34, 28, 29, 'Fri2'), 43(35, 30, 6, 'Fri5'), 44(36, 31, 3, 'Mon3'), 45(37, 32, 26, 'Fri3'), 46(38, 35, 8, 'Thu3'), 47(39, 36, 7, 'Tue2'), 48(40, 37, 13, 'Thu2'), 49(41, 38, 21, 'Wed4'), 50(42, 39, 27, 'Wed5'), 51(43, 29, 5, 'Thu2'), 52(44, 40, 31, 'Tue2'), 53(45, 40, 31, 'Fri4'), 54(46, 41, 32, 'Tue2'); 55 56-- 57-- Indexes for dumped tables 58-- 59 60-- 61-- Indexes for table `classdates` 62-- 63ALTER TABLE `classdates` 64 ADD PRIMARY KEY (`classdate_id`), 65 ADD UNIQUE KEY `ix01_classdates` (`class_id`,`date`), 66 ADD UNIQUE KEY `ix02_classdates` (`teacher_id`,`date`); 67 68-- 69-- AUTO_INCREMENT for dumped tables 70-- 71 72-- 73-- AUTO_INCREMENT for table `classdates` 74-- 75ALTER TABLE `classdates` 76 MODIFY `classdate_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=47; 77
SQL
1CREATE TABLE `available` ( 2 `class_id` int(11) NOT NULL, 3 `major` enum('AD01','EC01','ED01','EL01','EL02','IS01','LA01','ALL') NOT NULL 4) ENGINE=InnoDB DEFAULT CHARSET=utf8; 5 6-- 7-- Dumping data for table `available` 8-- 9 10INSERT INTO `available` (`class_id`, `major`) VALUES 11(1, 'IS01'), 12(2, 'IS01'), 13(3, 'IS01'), 14(4, 'IS01'), 15(5, 'ALL'), 16(6, 'EC01'), 17(6, 'ED01'), 18(6, 'LA01'), 19(7, 'AD01'), 20(7, 'ED01'), 21(8, 'AD01'), 22(9, 'ALL'), 23(10, 'ALL'), 24(11, 'EL01'), 25(11, 'EL02'), 26(12, 'EL02'), 27(13, 'EL01'), 28(14, 'EL01'), 29(14, 'EL02'), 30(14, 'IS01'), 31(15, 'EL01'), 32(15, 'EL02'), 33(15, 'IS01'), 34(16, 'EL01'), 35(16, 'EL02'), 36(16, 'IS01'), 37(17, 'ALL'), 38(18, 'ALL'), 39(19, 'ALL'), 40(20, 'ALL'), 41(21, 'ALL'), 42(22, 'ALL'), 43(23, 'LA01'), 44(24, 'LA01'), 45(25, 'ALL'), 46(26, 'AD01'), 47(26, 'ED01'), 48(27, 'ED01'), 49(28, 'AD01'), 50(28, 'ED01'), 51(29, 'EC01'), 52(30, 'EC01'), 53(31, 'AD01'), 54(31, 'IS01'), 55(32, 'AD01'), 56(35, 'EL01'), 57(35, 'EL02'), 58(36, 'EL01'), 59(37, 'EL02'), 60(38, 'LA01'), 61(39, 'AD01'), 62(40, 'EC01'), 63(40, 'ED01'), 64(41, 'ALL'); 65 66-- 67-- Indexes for dumped tables 68-- 69 70-- 71-- Indexes for table `available` 72-- 73ALTER TABLE `available` 74 ADD PRIMARY KEY (`class_id`,`major`); 75
以上です。生徒が申請を完了した際にそのテーブルを登録するテーブルなどはありますが、この質問いは関係ないので省略します。