Хотя для этого есть несколько способов, комбинация из FormIt и FormItRetriever дополнений может быть именно тем, что вам нужно.FormIt управляет обработкой ваших форм викторины, которая включает в себя сохранение данных в кеше или в базе данных в виде объекта JSON.И, как следует из названия, FormItRetriever позволяет вам извлекать ранее сохраненные данные формы на следующей странице.
Вот краткий пример, адаптированный из документов FormIt:
Page 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 является идентификатором вашей следующей страницы.FormIt будет использовать переадресацию перенаправления, указанную в свойстве & hooks , для перенаправления пользователя при отправке этой формы.
Page 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 .Это позволяет позже просматривать данные на странице Custom Manager (CMP) и экспортировать их, если это необходимо.
Более подробные примеры использования см. В официальных документах: https://docs.modx.com/extras/revo/formit