mformselect-Moodle

mformselect-Moodle,moodle,Moodle,当选择选项时,是否有mform select标记,以使其高亮显示并粘贴到所选选项,并选择更多选项,而无需使用控制键进行选择。我尝试了selectMulitple,它允许按住control键来选择选项 $select = $mform->addElement('select', 'course', get_string('course', 'core_course'), $options); $mform->addHelpButton('course', 'course

当选择选项时,是否有mform select标记,以使其高亮显示并粘贴到所选选项,并选择更多选项,而无需使用控制键进行选择。我尝试了selectMulitple,它允许按住control键来选择选项

$select = $mform->addElement('select', 'course', get_string('course', 'core_course'), $options);
        $mform->addHelpButton('course', 'course', 'core_course');
        $mform->addRule('course', null, 'required', null, 'client');
        $mform->setType('course', PARAM_INT);   
        $select->setMultiple(true); 

简短的回答是“否”。您需要使用控制键在“选择”菜单中选择多个项目

不过,您可以使用一系列复选框,如下所示:

$courses = core_course_category::get(0)->get_courses(
    array('recursive' => true, 'sort' => array('fullname' => 1)));

foreach ($courses as $course) {
    $mform->addElement('advcheckbox', "courses[{$course->id}]",
        format_string($course->fullname), null, array('group' => 1));
}
$this->add_checkbox_controller(1);
然后在编辑代码中,使用如下内容

for each($formdata->courses as $courseid => $selected) {
    if ($selected) {
        // User selected this course.
    } else {
        // User unselected this course.
    }
}