我的任务是创建一个(很长的)问卷表单,并将响应保存到SQL数据库中。我想把它分成更容易消化的块 - 我的想法是使用分页。例如。 1页用于个人详细信息,第2页用于反馈主题#1,第3页用于反馈主题#2等。
我使用分页来从带有过滤器的数据库中读取。我用表单写入数据库;但是我很难设法概念化如何对html表单进行分页,并且只在整个表单完成后提交($ _POST)数据(我可以看到导航到不同的页面将丢失任何表单信息)。随着新问题的增加,旧问题被删除,调查问卷的大小将随时间变化。
到目前为止我的想法: a)完成每个页面后写入数据库,如果用户想要返回该页面,重新读取信息,预先填写字段,允许他们编辑... b)按下NEXT按钮后,使用$ _SESSION变量存储页面的每个字段,并在表单的最后只调用$ _POSTing,调用所有会话变量。虽然我怎么可能构造这个最终的$ _POST语句我不确定,但我从未在$ _POST语句中使用会话变量。
我倾向于只使用HTML,CSS和PHP - 主要是因为我对JavaScript,AJAX等的经验很少。
有没有人有使用HTML和PHP创建这样的分页表单的经验?任何建议都将不胜感激。
谢谢
答案 0 :(得分:2)
如果你在其中添加jquery会更容易,因为你不熟悉jquery ..这是你的快速代码:
<script src="https://code.jquery.com/jquery-1.11.2.js"></script>
<form>
<div id="first">
personal details
<input type="text">
<input type="text">
</div>
<div id="second" style="display:none">
feedback on topic #1
<input type="text">
</div>
<div id="third" style="display:none">
feedback on topic #2
<input type="text">
<input type="submit">
</div>
</form>
<br><br>
<div id="page_menus">
<a id="get_first" style="cursor:pointer">1</a>
<a id="get_second" style="cursor:pointer">2</a>
<a id="get_third" style="cursor:pointer">3</a>
</div>
<script>
$('#get_first').click(function(){
$('#first').show()
$('#second').hide()
$('#third').hide()
})
$('#get_second').click(function(){
$('#first').hide()
$('#second').show()
$('#third').hide()
})
$('#get_third').click(function(){
$('#first').hide()
$('#second').hide()
$('#third').show()
})
</script>
它首先隐藏第二个和第三个div,在单击页码时使用jquery显示它。它非常简单,只需修改代码
即可