1. ホーム
  2. Web制作
  3. HTML/Xhtml

純粋な html ページで送信、パラメータ渡し、ID 確認を行う方法

2022-02-06 11:07:57
このプロジェクトでは、一連のアンケートが必要でしたが、クライアントは質問をプレーンなhtmlタグにすることを要求しており、一連の問題が発生しました
1 ページの投稿方法
ユーザーがアンケートを実施した後、アンケート結果はどのように送信されますか?
2 ページにパラメータを渡す方法
同じアンケートを複数人で投稿した後、管理者がアンケートを見るのですが、見たデータが指定した人のアンケートであることを確認するために、どのようにパラメータを渡せばよいのでしょうか?実はこの問題、asp.netでは最も単純なクエリ文字列で解決できるのですが、素のhtmlでは、どのようにパラメータを渡せばいいのでしょうか?
3 ユーザー認証の方法
ログインしてアンケートに回答した後、ユーザーがログインしていることを確認するにはどうしたらよいですか?
システム全体はhtmlで実装されているのですか?できるのでしょうか?結局、投稿されたデータをデータベースに保存する必要があるのですが、これは純粋なhtmlでは無理なのでは?
つまり、フロントエンドではすべて静的なhtmlページを使用し、バックエンドではそれに合わせてcsharpのコードを使用しなければならないというのが基本的な考えです。
1 ページの投稿方法
実は純粋なhtmlは、主にタグフォームから送信することができます。
例えば、次のコードは、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は静的なページであり、ページに対応するバックエンドが存在しないため、どのようにパラメータを渡すかについて
たとえば、アンケートの同じセット、張三、李Siは、アンケートに答えている、管理者は張三のアンケートをチェックしたい、どのようにアンケートのテスト問題に張三の答えを再割り当てするには?
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もあり、ユーザーのID確認も可能です。静的なhtmlページが期限切れかどうかを判断する必要がある場合は、ajaxでバックエンドのメソッドを呼び出し、Sessionが存在するかどうかでユーザーがログインしているかどうか、期限切れかどうかを判断すればよいでしょう。