簡體   English   中英

從胡須模板 Moodle 3.7 中獲取數據

[英]Getting data back from a mustache template Moodle 3.7

我正在 moodle 3.7 中為新的管理工具插件做一些開發。 在這個插件中,我從一個自定義的 made.mustache 模板生成一個頁面。 此模板包含許多在其中定義和管理的值,一旦按下提交按鈕,我想在 my.php 文件中訪問這些值。

但是,目前我無法訪問在模板中定義的這些提交的值。 我可以在 $form->_form->_submitValues 下的調試中看到它們的值,但由於 _form 是 $form 的受保護變量,我無法找到它們。 我調用了 $form->get_data(),但這只能讓我訪問我在 php 中定義為非 html 元素(例如隱藏)的元素,而不是在模板中。 我不確定這是否是提出這個問題的正確地方,但如果有人有任何幫助,他們可以在前進的道路上給我提供幫助,我將不勝感激。

我正在使用 function 將模板添加到頁面:

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

請讓我知道您可能需要的任何其他信息。

您想要訪問的任何變量都必須使用以下函數在 mform 中定義:

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

任何需要更新這些值的 JavaScript 都必須在單獨的 .js 文件中,而不是在您的模板中。 如果 JavaScript 在你的 mustache 文件中工作,如果你把它放在不同的 .js 文件中,它仍然會做同樣的事情,只要那個 .js 文件包含在頁面上。

需要注意的一件事:如果您使用我上面定義的函數,該變量將沒有 ID。 取而代之的是,它的名稱與您輸入的 VARIABLE_NAME 相同。 但是,這意味着您不能使用document.getElementByID()來獲取變量的實例。 相反,您將不得不使用document.getElementsByName("VARIABLE_NAME")[0]來訪問您的元素。

如果這兩件事都完成了,那么您應該會看到值更新並在 $data 變量中提交時發送到您的 mform。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM