要求必須是純html標簽,單純的html頁面如何提交,傳遞參數(shù),以及對身份的驗證,下面就與大分享下上述一系列是如何實現(xiàn)的,有此需求的朋友可以參考下,希望對大家有所幫助
由于項目需要做一套調(diào)查問卷,但客戶要求調(diào)查問卷的題目,必須是純html標簽,于是就面臨著一系列的問題
1.頁面如何提交
用戶做完了調(diào)查問卷,調(diào)查的結(jié)果如何提交?
2.如何給頁面?zhèn)鬟f參數(shù)
同一個調(diào)查問卷,多個人提交后,管理人員查看調(diào)查問卷,如何傳遞參數(shù),保證看到的數(shù)據(jù)是指定某一個人的調(diào)查問卷。其實這個問題,在asp.net中使用最簡單的查詢字符串就可以解決,但在純html中,如何傳遞參數(shù)?
3.如何驗證用戶身份
在用戶登陸后,才能答卷,如何驗證用戶是否登錄呢?
整個系統(tǒng)都使用html實現(xiàn)?能完成嗎?似乎不行,畢竟提交的數(shù)據(jù)需要保存到數(shù)據(jù)庫中,這個恐怕不是純html可以完成的。
所以基本思路就是前臺全部使用html靜態(tài)網(wǎng)頁,但后臺卻必須使用csharp代碼配合。
1.頁面如何提交
其實純html可以提交,主要是通過標簽form。
例如如下代碼,在提交到savedata.aspx后,就可以獲得用戶輸入的所有的數(shù)據(jù),在進行處理后保存到數(shù)據(jù)庫,可以通過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.如何給頁面?zhèn)鬟f參數(shù)
在asp.net中給頁面?zhèn)鬟f參數(shù)其實最簡單就是通過查詢字符串,但純html了網(wǎng)頁是靜態(tài)網(wǎng)頁,沒有對應(yīng)頁面的后臺,如何傳遞參數(shù)
例如同一套問卷,張三,李四都解答了問卷,管理員要查看張三的問卷,如何把張三的答案重新賦值給問卷的試題?
由于html是是靜態(tài)頁面,想要讀取數(shù)據(jù),就必須通過ajax動態(tài)讀取答案,然后再修改靜態(tài)頁面。但如何傳遞表示某一個人的參數(shù)呢?
其實還是通過查詢字符串,但分析查詢字符串的方法從后臺變?yōu)榍芭_,變成了通過js去分析查詢字符串,然后通過ajax讀取數(shù)據(jù)。
代碼如下:
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 "";
}
}
當然還有一種方法,因為讀取數(shù)據(jù)是要通過后臺的,所以可以根據(jù)Session中的信息來獲取參數(shù),但如果Session中沒有相關(guān)信息,就只能通過通過查詢字符串的方式了。
例如此處的例子,就只能通過查詢字符串的方式了。
3.如何驗證用戶身份
既然整個系統(tǒng)沒有辦法只是用html完成,前臺展示是純html,后臺是csharp代碼,自然也就存在Session,當然也就可以驗證用戶身份了。如果需要判斷靜態(tài)的html頁面是否過期,可以通過ajax調(diào)用后臺方法,根據(jù)Session是否存在判斷用戶是否登錄以及是否過期等判斷。