第 6 章 システムの実現方法
6.5 追加または編集したプログラムファイル
6.5.10 student_attenance_byseat_form.php を追加
138
139
図 6-62のファイルは学生が自身の座席位置を送信するためのフォーム画面を作成する ための画面である。mod_attendance_student_attendance_byseat_formクラスは
moodleformクラスを継承しフォーム画面を作成することができる。
mod_attendance_student_attendance_byseat_formクラスのインスタンスは
attendance_byseat.phpの中で作成される。また、
mod_attendance_student_attendance_byseat_formクラスで表示されたフォーム画面から
送信されたフォームデータはattendance_byseat.phpファイルで受け取られる。
30行目付近では座席位置の前からの列数を選択するセレクトボックスを作成する文が ある。moodleform クラスのaddElementメソッド(20)へ渡す第1引数に「select」と指 定することでhtmlのselectタグを追加する。第2引数へは「row」と指定する。こうする ことで、追加するselectタグのname属性の値を「row」にできる。また同時にselectタグ のid属性も決定される。selectタグのid属性は第2引数の「row」を用いて、「id_row」
$rowoptions=[];
for($nrow=1;$nrow<=15;$nrow++){
$rowoptions+=array($nrow=>$nrow."列目");
}
$mform->addElement('select','row',前から,$rowoptions);
$mform->setType('row',PARAM_INT);
$coloptions=[];
for($ncol=1;$ncol<=15;$ncol++){
$coloptions+=array($ncol=>$ncol."列目");
}
$mform->addElement('select','column',右から,$coloptions);
$mform->setType('column',PARAM_INT);
$this->add_action_buttons();
} }
(b) 後半部分
図 6-62 student_attenance_byseat_form.php
140
と決定される。第3引数は「前から」とする。第3引数で指定された文章は追加するセレ クトボックスの前に表示されるlabelタグの文章に使われる。また、このlabelタグのid属 性はセレクトボックスのid属性と同じ「id_row」が指定される。同じid属性を指定する ことでセレクトボックスとラベルを関連付けることができる。第4引数は、セレクトボッ クス内の選択肢を指定するoptionタグに関係する。add_Elementメソッドで第1引数に
「select」が指定された場合、第4引数には配列が入る。この配列のキーがoptionタグの
value属性に指定され、配列の値が選択に表示される文章となる。プログラムではこの第
4引数に渡す配列を変数$rowoptionとしている。変数$rowoptionには、for文による繰り 返し処理を用いて、キーに教室の前からの列数を1から15までの数字を値にキーの数字
+列目という文字列を格納してある。
40行目付近では座席位置の右からの列数を選択するセレクトボックスを作成する文が ある。moodleform クラスのaddElementメソッドへ渡す第1引数に「select」と指定する
ことでhtmlのselectタグを追加する。第2引数へは「col」と指定する。こうすること
で、追加するselectタグのname属性の値を「col」にできる。また同時にselectタグのid 属性も決定される。selectタグのid属性は第2引数の「col」を用いて、「id_col」と決定さ れる。第3引数は「右から」とする。第3引数で指定された文章は追加するセレクトボッ クスの前に表示されるlabelタグの文章に使われる。また、このlabelタグのid属性はセレ クトボックスのid属性と同じ「id_col」が指定される。同じid属性を指定することでセレ クトボックスとラベルを関連付けることができる。第4引数は、セレクトボックス内の選 択肢を指定するoptionタグに関係する。add_Elementメソッドで第1引数に「select」が 指定された場合、第4引数には配列が入る。この配列のキーがoptionタグのvalue属性に 指定され、配列の値が選択に表示される文章となる。プログラムではこの第4引数に渡す 配列を変数$coloptionとしている。変数$coloptionには、for文による繰り返し処理を用い て、キーに教室の前からの列数を1から15までの数字を値にキーの数字+列目という文 字列を格納してある。
27行目付近のfareach文では、画面を構成するhtml文にtype属性がhiddenのinput タグを追加している。name属性は第2引数として渡される「status」という文字列であ る。value属性は第3引数として渡される値で、「出席」を表す数が設定される。
141