我是 modx 的新手,我必须在我的网站上创建多页 测验。 任何建议都会有所帮助。
答案 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