我有一个向用户提交测验的表单,根据他们的答案,我可能想问他们额外的问题,我必须动态地添加到所述表单中。
到目前为止,我一直在做的是,我已经从测验的问题列表,创建了一个表单并将其发送到我在 twig 中的视图,以向用户显示原始问题,如下所示:
<table>
<tbody id="table_body">
{% for answer in form.answers %}
<tr id={{ answer.vars.value.question.id }}>
<td><span class="question">{{ answer.vars.value.question.title }}</span></td>
<td class="answer">
{{ form_widget(answer.choice) }}
</td>
</tr>
{% endfor %}
</tbody>
</table>
{{ form_rest(form) }}
我使用 Ajax 请求来检查当用户选择问题的答案时是否应显示任何问题,如果是,我为触发的问题创建一个类似于上述的新 tr 元素并将其添加到表中。
但是,在发布表单后,我(逻辑上)收到以下错误:“错误:此表单不应包含额外的字段。”
所以我想我最初会加载每个问题,并且只在视图中显示那些将“triggerQuestionId”设置为 null 的问题。
但这也不起作用,因为如果我保留 {{ form_rest(form) }} ,则会显示触发的问题,如果我不这样做,我会收到一条错误消息,指出 CSRF 令牌无效。
我仍然是 Symfony 的新手,我觉得一定有一种我不知道或没有想过的更简单的方法。
我希望我已经让自己足够清楚,但如果需要,请毫不犹豫地要求精确。
提前致谢