假设我有一个用户页面,用户可以选择要学习的科目,也可以选择上传问题的按钮。
Basic View Of a Subject Page - 用户选择一个主题并获得一个像小提琴一样的视图
<div class="dataContainer">
<div class="clsContextContainer">
<a href="intro.php">Chapter1</a>
<a href="basic.php">Chapter2</a>
<a href="next.php">Chapter3</a>
<a href="advanced.php">Chapter4</a>
<a href="future.php">Chapter5</a>
</div>
<div class="clsContentContainer">
<div class="q"> Q: Question goes here
<div class="c">C: a) choice1 b) choice2</div>
<div class="a">AnswerButton</div></div>
<div class="q"> Q: Question goes here
<div class="c">C: a) choice1 b) choice2</div>
<div class="a"> AnswerButton</div>
</div>
</div>
</div>
我已经展示了一个我想要的简单页面。我怀疑的是如何设计此页面,以便自动添加其他问题。
解决方法1
用户上传单个问题或包含问题列表的文件。其中一位管理员批准[不是重复的问题,有效的问题],然后应将其添加到此主题页面。
我可以使用handlebars.js
,我可以在这里维护一个模板,就像我在小提琴和上下文页面中显示的一样。一旦管理员批准,我就可以将新问题添加到可用上下文列表中。[MODIFYING A FILE IN THE SERVER
]因此,当用户下次呈现页面时,也会添加新问题。
我的疑问 - 通过脚本修改serer中的文件是否安全?
溶液2 :
我可以在服务器questionsSubName
中维护一个表。用户添加了新问题.Admin批准了它。所以将该问题添加到服务器中的表中。
渲染时,从数据库中读取问题,然后渲染它。
我怀疑:我觉得它不可行,因为查询db通常不是解决这种情况的最佳方法。
Solution3
我可以在小提琴[anchor tag
]中显示文件列表。用户添加了一个新问题。管理员批准它。
(i)手动创建/修改与章节对应的文件。 create
- 我希望每章限制50个问题。如果一章有50个问题,我需要创建另一个。所以创造在这里进入了画面。如果章节的问题少于50个,请对其进行修改。
ii)通过脚本完成。
但我不确定我是否以正确的方式做到了。请告诉我我可以做什么,或者在这种情况下是否有任何其他框架可以帮助我。
修改
阅读评论后,handlebars js with tables
是最佳解决方案。
<div class="q"> {{{Question}}}
<div class="c">{{{Choices}}}
<div class="a">AnswerButton</div>
这可能是我的模板页面。
上下文页面就像
{
Questions:[
{Q: questionString, C: ChoiceString},
next one
]
}
我必须从服务器上阅读一组问题,例如:我有一个主题的5章和表中的220个问题。
表格式:
Question Id Column
Question Column
Choice Column
Answer Column
因此,如果用户点击chapter1
,我将从表中读出前50个问题并创建一个上下文,然后进行渲染。如果用户点击chapter5
,请阅读最后50个问题并制作上下文,然后进行渲染。
可行吗?