我尝试在moodle上制作一个插件。我在moodle 3.0上工作,我已经为我的插件创建了一个moodle表单,我想在表单上显示测验列表使用moodle select元素,当我只显示没有选择选项时显示的表单。当我尝试在选择元素上添加一个选项时,使用 moodle 数据操作 API 中的代码,我的表单没有显示。
这是我的代码。
public function definition() {
global $CFG;
$courses = get_courses('id, fullname, category');
$arrcourses= array();
$arrcourses[0] = get_string('choose');
foreach($courses as $c) {
if ($c->category !=0){
$arrcourses[$c->id]=$c->fullname;
}
}
$view_form = $this->_form; // Don't forget the underscore!
$view_form->addElement('select', 'quiz_select', get_string('select_label', 'local_eg'), $arrcourses); // Add elements to your form
$view_form->setType('quiz', PARAM_INT);
$view_form->setType('quiz_select', PARAM_INT);
当我使用它时,我的表格看起来像这样。 选择带有当然列表的元素
但是选择元素填充课程列表,因为我使用 get_course 函数......然后当我尝试使用 get_record_sql 函数时,如下面的代码
class view_form extends moodleform {
//Add elements to form
public function definition() {
global $CFG;
$courses = get_courses('id, fullname, category');
$arrcourses= array();
$arrcourses[0] = get_string('choose');
foreach($courses as $c) {
if ($c->category !=0){
$arrcourses[$c->id]=$c->fullname;
}
}
////////////////////////////////////////////////////////////////
// THIS IS THE NEW LINE THAT I ADD TO FILL THE SELECT ELEMENT//
///////////////////////////////////////////////////////////////
$courselist=array();
$table= "quiz";
$result = $DB->get_records_list($table, 'course', array( '2'));
$view_form = $this->_form; // Don't forget the underscore!
$view_form->addElement('select', 'quiz_select', get_string('select_label', 'local_eg'), $arrcourses); // Add elements to your form
$view_form->setType('quiz', PARAM_INT);
$view_form->setType('quiz_select', PARAM_INT);
我只添加了 3 个新行,保存并运行后,我的表单消失了……有人可以帮我解决这个问题吗?