提交表单后,请保持选中advcheckbox

时间:2018-08-09 19:04:35

标签: php moodle moodle-api

提交表单后,我无法保持选中的复选框处于选中状态。单击提交按钮后,数据将提交到数据库中,但是进入编辑表单模式后,所有复选框都将再次取消选中。

foreach ($domains as $domain){ //$domains is an array of int's
if($domain){$status = 1;
$mform->addElement('advcheckbox', 'domain_' . $domain->id,'' , $domain->rawname, array('group' => 1),  array(0, $domain->id), array(0, $status))}};

我的理解是第6个参数,该参数当前包含 array(0,$ status),用于控制复选框的选中和未选中状态。如果$ domain存在,则$ status的值应为1,这将使复选框处于选中状态并保持选中状态。这不会发生。任何帮助,将不胜感激!

1 个答案:

答案 0 :(得分:0)

您的实际代码应包括$mform->set_data,但如果需要快速修复,则为:

foreach ($domains as $domain){ //$domains is an array of int's
    $status = $domain ? 1 : 0;
    $mform->addElement('advcheckbox', 'domain_' . $domain->id, '' , $domain->rawname, array('group' => 1));
    $mform->setDefault('domain_' . $domain->id, $status);
}