Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 管理员的Moodle advcheckbox_Javascript_Php_Moodle - Fatal编程技术网

Javascript 管理员的Moodle advcheckbox

Javascript 管理员的Moodle advcheckbox,javascript,php,moodle,Javascript,Php,Moodle,我在面对面mod_form.php中添加了一个advcheckbox表单,作为管理员,我可以在其中选中该框,从而允许注册页面中的学生查看一些租车选项,如果管理员没有标记该复选框,则会将其隐藏。 这是我在mod_form.php中的代码 $mform->addElement('advcheckbox', 'allowcarhire', get_string('facetoface_allowcarhire', 'facetoface')); $mform->setDefa

我在面对面mod_form.php中添加了一个advcheckbox表单,作为管理员,我可以在其中选中该框,从而允许注册页面中的学生查看一些租车选项,如果管理员没有标记该复选框,则会将其隐藏。 这是我在mod_form.php中的代码

$mform->addElement('advcheckbox', 'allowcarhire',    get_string('facetoface_allowcarhire', 'facetoface'));
    $mform->setDefault('allowcarhire', 0);
    $mform->setType('allowcarhire', PARAM_BOOL);
这是我在用户注册表单signup_form.php中的代码,它为我们提供了租车的选项:

$mform->addElement('advcheckbox', 'carrequired', get_string('facetoface_carrequired', 'facetoface'));
    $mform->setDefault('carrequired', 0);
    $mform->setType('carrequired', PARAM_BOOL);

    $mform->addElement('date_selector', 'checkin', get_string('facetoface_checkin', 'facetoface'));
    $mform->setType('checkin', PARAM_INT);
    $mform->disabledIf('checkin', 'carrequired', 'notchecked');

    $mform->addElement('date_selector', 'checkout', get_string('facetoface_checkout', 'facetoface'));
    $mform->setType('checkout', PARAM_INT);
    $mform->disabledIf('checkout', 'carrequired', 'notchecked');

    $mform->addElement('advcheckbox', 'minivan', get_string('facetoface_minivan', 'facetoface'));
    $mform->setDefault('minivan', 0);
    $mform->setType('minivan', PARAM_BOOL);

如何将它们连接起来,以便在mod_form.php中的第一个复选框未选中时,用户无法在其注册表单中看到租车选项?只能用php制作,还是我们也需要javascript?Moodle中的所有其他内容都未经修改,都是干净的安装。

首先,我假设您已经处理了将设置从mod_表单保存到数据库的问题。我假设您已经在mdl_Faceoface表中添加了一个名为“allowcarhire”的新字段来保存此设置

现在您需要通过“customdata”表单值将此值传递到表单中,查找$params=compact's'。。。行,就在$mform=new mod_facetoface_signup_formnull上方,$mod/facetoface/signup.php中的参数

一旦进入表单,并假设在将设置添加到customdata时保留了名称“allowcarhire”,则应能够写入:

if ($this->_customdata['allowcarhire']) {
    $mform->addElement('advcheckbox', 'carrequired', ...
}

我按照描述做了:allowcarhire与signup.php一样,我在signup.php中设置$params=compact's',backtoallsessions',manageremail',showdiscountcode',hasselfapproval',selfApprovalAndC',f2fid',waitListeneryone',enableattendeenote',SignupyWaitList',allowcarhire';在signup_form中,为lib.php中的其他cb创建了扩展_参数,在install.xml中添加了新表,但它出现了:注意:未定义索引:C:\xampp\htdocs\moodle\mod\facetoface\signup_form.php第40行的allowcarhire=$facetoface->allowcarhire,在尝试使用compact将其添加到数组中之前是否编写了类似$allowcarhire的内容?如果变量不存在,则compact无法添加它。是的,它位于signup_form.php中,如下所示:类mod_Faceoface_signup_form扩展了moodleform{function definition{global$CFG;$mform=&$this->_form;$manageremail=$this->_customdata['manageremail'];$showdiscountcode=$this->_customdata['showdiscountcode'];$enableattendeenote=$this->_customdata['enableattendeenote'];$allowcarhire=$this->_customdata['allowcarhire'];还是应该在契约之前在signup.php中定义它?是的。契约获取必须已经存在的变量列表,并创建一个由这些值组成的数组,按变量名称进行索引。我原以为如果使用它而不首先定义变量,会收到调试警告。是否将调试设置为developer+displaY