由于项目需要做一套调查问卷,但客户要求调查问卷的题目,必须是纯html标签,于是就面临着一系列的问题
1页面如何提交
用户做完了调查问卷,调查的结果如何提交?
2如何给页面传递参数
同一个调查问卷,多个人提交后,管理人员查看调查问卷,如何传递参数,保证看到的数据是指定某一个人的调查问卷。其实这个问题,在asp.net中使用最简单的查询字符串就可以解决,但在纯html中,如何传递参数?
3如何验证用户身份
在用户登陆后,才能答卷,如何验证用户是否登录呢?
整个系统都使用html实现?能完成吗?似乎不行,毕竟提交的数据需要保存到数据库中,这个恐怕不是纯html可以完成的。
所以基本思路就是前台全部使用html静态网页,但后台却必须使用csharp代码配合。
1页面如何提交
其实纯html可以提交,主要是通过标签form。
例如如下代码,在提交到savedata.aspx后,就可以获得用户输入的所有的数据,在进行处理后保存到数据库,可以通过ajax提交,也可以通过input的 type为submit的标签提交。
<input type="submit" value="Submit" />
<form action="savedata.aspx" method="post">
<p>First name: <input type="text" name="fname" /></p>
<p>Last name: <input type="text" name="lname" /></p>
<input type="submit" value="Submit" />
</form>
2如何给页面传递参数
在asp.net中给页面传递参数其实最简单就是通过查询字符串,但纯html了网页是静态网页,没有对应页面的后台,如何传递参数
例如同一套问卷,张三,李四都解答了问卷,管理员要查看张三的问卷,如何把张三的答案重新赋值给问卷的试题?
由于html是是静态页面,想要读取数据,就必须通过ajax动态读取答案,然后再修改静态页面。但如何传递表示某一个人的参数呢?
其实还是通过查询字符串,但分析查询字符串的方法从后台变为前台,变成了通过js去分析查询字符串,然后通过ajax读取数据。
function QueryString(name )
{
var sURL = window.location.search
var re = new RegExp("" +name+ "=([^&?]+)", "ig");
var result= re.exec(sURL);
if(result)
{
var temp= result[0].split('=');
return temp[1] ;
}
else
{
return "";
}
}
当然还有一种方法,因为读取数据是要通过后台的,所以可以根据Session中的信息来获取参数,但如果Session中没有相关信息,就只能通过通过查询字符串的方式了。
例如此处的例子,就只能通过查询字符串的方式了。
3如何验证用户身份
既然整个系统没有办法只是用html完成,前台展示是纯html,后台是csharp代码,自然也就存在Session,当然也就可以验证用户身份了。如果需要判断静态的html页面是否过期,可以通过ajax调用后台方法,根据Session是否存在判断用户是否登录以及是否过期等判断。