由於項目需要做一套調查問卷,但客戶要求調查問卷的題目,必須是純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是否存在判斷用戶是否登錄以及是否過期等判斷。