从小胡子模板Moodle 3.7获取数据

问题描述 投票:0回答:1

我正在穆迪3.7中为新的管理工具插件进行一些开发。在此插件中,我从定制的.mustache模板生成页面。该模板包含许多在其中定义和管理的值,一旦按下提交按钮,我就希望在.php文件中访问这些值。

但是,目前我无法访问模板中定义的这些提交的值。我可以在$ form-> _ form-> _ submitValues下的调试中看到它们的值,但是由于_form是$ form的受保护变量,因此无法获取它们。我调用了$ form-> get_data(),但这只允许我访问在php中定义为非html元素(例如,隐藏)的元素,而不是模板中的元素。我不确定这是否是提出这个问题的合适地点,但是如果有人能提供任何帮助,他们可以在前进的道路上为我提供帮助,将不胜感激。

我正在使用功能将模板添加到页面:

$mform->addElement(
    'html', 
    $OUTPUT->render_from_template(PLUGIN_TOOL_NAME/members', $rendercontext)
);

请让我知道您可能需要的其他信息。

javascript php templates moodle mustache
1个回答
0
投票

您必须使用以下功能在mform中定义要访问的任何变量:

$mform->addElement('hidden', 'VARIABLE_NAME');
$mform->setType('VARIABLE_NAME', PARAM_INT);

任何需要更新这些值的JavaScript都必须在单独的.js文件中,而不是在模板中。如果JavaScript在您的小胡子文件中可用,但只要页面中包含该.js文件,如果将其放在其他.js文件中,它仍会执行完全相同的操作。

要注意的一件事:如果使用我上面定义的函数,则该变量将没有ID。取而代之的是,它的名称等于您输入的VARIABLE_NAME的名称。但是,这意味着您不能使用document.getElementByID()来获取变量的实例。相反,您将必须使用document.getElementsByName("VARIABLE_NAME")[0]来访问您的元素。

如果这两个步骤都完成,您将看到值更新,并在$ data变量中提交后发送到您的表单。

© www.soinside.com 2019 - 2024. All rights reserved.