ホームページ >ウェブフロントエンド >htmlチュートリアル >HTMLの隠しフィールドの役割と使用サンプルコードを詳しく解説

HTMLの隠しフィールドの役割と使用サンプルコードを詳しく解説

高洛峰
高洛峰オリジナル
2017-03-14 17:56:255552ブラウズ

非表示フィールドは、ページ上のユーザーには表示されません。フォームに非表示フィールドを挿入する目的は、フォームを処理するプログラムで使用できるように情報を収集または送信することです。以下では、この非表示の仕組みについて詳しく説明します。フィールドの使い方は、興味のある方はぜひご覧ください 基本構文:

d397e4a282479b6ab7f00f654bbf55ef

関数:

1 隠しドメイン ページ上のユーザーには表示されません。フォームに隠しフィールドを挿入する目的は、フォームを処理するプログラムで使用できる情報を収集または送信することです。閲覧者が送信 ボタン をクリックしてフォームを送信すると、非表示フィールドの情報もサーバーに送信されます。

2 フォームを送信するときに、ユーザーの身元を特定するための情報 (sessionkey など) をユーザーに提供する必要がある場合があります。もちろん、これらのことは cookie を使用しても実現できますが、非表示フィールドを使用する方がはるかに簡単です。また、ブラウザーがサポートしていないことやユーザーが Cookie を無効にすることを心配する必要はありません。

3 form に複数の送信ボタンがある場合がありますが、プログラムはユーザーがどのボタンを押して送信したかをどのように区別できるのでしょうか?隠しフィールドを作成し、各ボタンに onclick="document.form.command.value="xx"" を追加します。次に、データを受信した後、最初にコマンドの値を確認します。ボタンを押すことでユーザーが送信されたことがわかります。

4 Web ページに複数のフォームが存在する場合がありますが、複数のフォームを同時に送信することはできませんが、場合によっては、これらのフォームが相互に作用して接続できることがあります。

5 javascriptはグローバル変数をサポートしていませんが、場合によってはグローバル変数を使用する必要があり、最初に値を隠しフィールドに保存することができ、その値は失われません。

6 別の例として、ボタンを押すと 4 つの小さなウィンドウが表示され、そのうちの 1 つをクリックすると、他の 3 つは自動的に閉じます。ただし、IE は小さなウィンドウの相互呼び出しをサポートしていないため、親ウィンドウに隠しフィールドを書き込むことしかできません。小さなウィンドウは、隠しフィールドの値が近いことを確認すると、それ自体を閉じます。

例: hidden を使用して、送信ボタンをクリックしたときに数値が 1 ずつ増加するように実装します。

数値増加.htm

コードは次のとおりです:

<form action="数值自增.ashx" method="post"> 
<input type="hidden" name="_viewstate" value="a" /> 
<input type="hidden" name="_p" value="@n" /> 
<!-- <input name="txt" type="text" value="@value" />--> 
<p>@n</p> 
<input type="submit" value="click" /> 
</form>


汎用ハンドラーを使用して、

数値増加を実装します。 ashx

コードは次のとおりです:

int n = 0; 
public void ProcessRequest (HttpContext context) { 
context.Response.ContentType = "text/html"; 
string path = context.Request.MapPath("数值自增.htm"); 
string html = System.IO.File.ReadAllText(path); 
//判断页面是否是第一次加载 
string viewstate = context.Request.Form["_viewstate"]; 
if (!string.IsNullOrEmpty(viewstate)) 
{ 
//点击按钮 post 
//获取隐藏域的值 
string s = context.Request.Form["_p"]; 
if (int.TryParse(s, out n)) 
{ 
n++; 
html = html.Replace("@n",n.ToString()); 
} 
} 
else 
{ 
//页面首次加载,给p和p对应的隐藏域赋值 
html = html.Replace("@n", n.ToString()); 
} 
context.Response.Write(html); 
}


以上がHTMLの隠しフィールドの役割と使用サンプルコードを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。