如何在modx

时间:2018-06-11 06:12:52

标签: modx modx-templates modx-chunks

我是 modx 的新手,我必须在我的网站上创建多页 测验。 任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:0)

虽然有多种方法可以实现此目标,但是FormIt的组合 和FormItRetriever临时演员可能正是您所需要的。 FormIt处理您的测验表单,包括将数据保存在缓存中或数据库中作为JSON对象。并且,顾名思义,FormItRetriever允许您在后续页面上检索以前保存的表单数据。

这是改编自FormIt文档的一个快速示例:

第1页

[[!FormIt?
 &submitVar=`go`
 &hooks=`spam,redirect`
 &store=`1`
 &redirectTo=`id-of-next-page`
]]
<form action="[[~[[*id]]]]" method="post">
    <input type="hidden" name="nospam" value="" />
    <label for="qzq1">Quiz question 1: [[!+fi.error.qzq1]]</label>
    <input type="text" name="qzq1:required" id="qzq1" value="[[!+fi.qzq1]]" />
    <label for="qzq2">Quiz question 2: [[!+fi.error.qzq2]]</label>
    <input type="text" name="qzq2:required" id="qzq2" value="[[!+fi.qzq2]]" />
    <label for="qzq3">Quiz question 3: [[!+fi.error.qzq3]]</label>
    <textarea name="qzq3:stripTags" id="qzq3" cols="55" rows="7">[[!+fi.qzq3]]</textarea>
    <br />
    <input type="submit" name="go" value="Next" />
</form>

&store 属性告诉FormIt将数据存储在缓存中,以便使用FormItRetriever代码段进行检索。

&redirectTo 属性是您下一页的ID。当用户提交此表单时,FormIt将使用在&hooks 属性中指定的重定向挂钩来重定向用户。

第2页:

[[!FormItRetriever]]

[[!FormIt?
 &submitVar=`go`
 &hooks=`spam,redirect`
 &store=`1`
 &redirectTo=`id-of-third-page`
]]

/* Page 2 quiz form goes here */

FormItRetriever代码段将允许您显示以前保存的表单数据,并使用与表单字段名称相关的占位符=> [!+ fi.qzq1]]

要将测验表单数据存储在数据库中,可以使用FormItSaveForm。这样一来,您便可以稍后在“自定义管理器页面”(CMP)中查看数据,并在需要时将其导出。

有关更多用法示例,请参阅官方文档:https://docs.modx.com/extras/revo/formit