ホームページ > バックエンド開発 > PHPチュートリアル > paip.PHP-asp—jsp によるイベント メカニズムの実装 WEBFORM スタイルの開発_PHP チュートリアル

paip.PHP-asp—jsp によるイベント メカニズムの実装 WEBFORM スタイルの開発_PHP チュートリアル

WBOY
リリース: 2016-07-13 17:54:06
オリジナル
1102 人が閲覧しました

paip.PHP-asp—jsp はイベントメカニズムを実装する WEBFORM スタイルの開発

はじめに...1

CODE ビハインドコード分離... 1

ページ制御...1

フォームの実装…2

状態VIEWSTATE保存を実装...2

Page_Ini イベントと Page_Load イベント... 3

button1_clickイベントを実装...4

button2_clickイベントを実装...4

注: webform.CodeFile.php ソース コード... 5

はじめに
asp.net は、イベント メカニズムに基づいた理解しやすい WEBFORM スタイルで開発されており、MVC メソッドよりも開発効率がはるかに速いことは誰もが知っています。

PHP、ASP、および JSP は WEBFORM を使用して開発することもできます。ここでは、WEBFORM スタイルの開発方法を説明するための例として PHP を使用します。

CODE ビハインドコード分離

コード分​​離を実現する必要がある場合は、MVC に加えてコードビハインド技術を使用することもできます。MVC よりも簡単で、開発効率が高く、モジュール化とコンポーネント化も簡単に実現できます。

私の場合、2 つのページを実装しました。1 つは webform.php という名前のインターフェイス HTML コード用で、もう 1 つは webform.CodeFile.php という名前のコード用です

CODE Behind を実装するには、webform.php の最初の行に次のコードを追加します。

ページコントロール

ASPで。 NET では、HTML コントロールがサーバー側で参照できることを示すために RUNAT="SERVER" を使用します。PHP では、これを実現するための回避策が必要です

ラベルコントロール:


テキストボックスコントロール:

フォームを実装する

ここでは、LABLE、TEXTBOX コントロール、および 2 つのボタン コントロールが必要です...

私たちの要件は、最初のボタンがクリックされたときに、LABLE と TEXTBOX の値が button1 click…に設定されることです。

2番目のボタンをクリックすると、LABLEの値をTEXTBOXの入力値に設定します

全体のコードは次のとおりです

入力:

状態VIEWSTATE保存を実現

CODE Behind ファイル webform.CodeFile.php に、フロントエンド インターフェイス コントロールの状態を保存するコードを記述します。 。インターフェースが送信されて返されるとき、コントロール値はすべて入っています...

//制御ステータスの保持、ビューステート管理

viewstate();

//__ビューステート

関数 viewstate()

{

foreach ($_REQUEST as $color){

$key=key($_REQUEST);

$controlName=$key."_Text";

エコー($ key。 "---"。$ color。 "< br>");

グローバル $$controlName;

次($_REQUEST);

}

}

Page_Ini イベントと Page_Load イベント

このフォームに初めてアクセスすると、Page_Ini イベントがトリガーされ、このページにアクセスするたびに、Page_Load イベントが常にトリガーされます。

//ページイベント登録

eventReg4Page();

関数 Page_Ini()

{

echo "ページiniイベント";

グローバル $Label1_Text;

$Label1_Text=" Page_Ini クリック";

グローバル $TextBox1_Text;

$TextBox1_Text=" Page_Ini クリック";

}

関数 Page_Load()

{

echo "ページ読み込みイベント";

}

button1_clickイベントを実装します

//コントロールイベント登録

eventReg("Button1",Button1_Click);

//ボタンコントロールButton1のクリックイベント

関数 Button1_Click()

{

グローバル $TextBox1_Text;

$TextBox1_Text=" button1 クリック";

グローバル $Label1_Text;

$Label1_Text=" button1 クリック";

}

//イベント登録

関数eventReg($controlName,$controlEvent)

{

if($_POST[$controlName])

$controlEvent();

}

button2_clickイベントを実装します
//ボタンコントロールButton2のクリックイベント

関数 Button2_Click()

{

グローバル $TextBox1_Text;

// $TextBox1_Text=" button2 click";

グローバル $Label1_Text;

$Label1_Text=$TextBox1_Text;

}

注: webform.CodeFile.php ソース コード

//制御ステータスの保持、ビューステート管理

viewstate();

//コントロールイベント登録

eventReg("Button1",Button1_Click);

eventReg("Button2",Button2_Click);

//ページイベント登録

eventReg4Page();

関数 Page_Ini()

{

echo "ページiniイベント";

グローバル $Label1_Text;

$Label1_Text=" Page_Ini クリック";

グローバル $TextBox1_Text;

$TextBox1_Text=" Page_Ini クリック";

}

関数 Page_Load()

{

echo "ページ読み込みイベント";

}

//ボタンコントロールButton1のクリックイベント

関数 Button1_Click()

{

グローバル $TextBox1_Text;

$TextBox1_Text=" button1 クリック";

グローバル $Label1_Text;

$Label1_Text=" button1 クリック";

}

//ボタンコントロールButton2のクリックイベント

関数 Button2_Click()

{

グローバル $TextBox1_Text;

// $TextBox1_Text=" button2 click";

グローバル $Label1_Text;

$Label1_Text=$TextBox1_Text;

}

//-----------------以下の関数をパブリック関数として含めることができます------

//イベント登録

関数eventReg($controlName,$controlEvent)

{

if($_POST[$controlName])

$controlEvent();

}

//ページイベント登録

関数eventReg4Page()

{

if(!$_POST)

{

if(function_exists("Page_Ini"))

call_user_func("Page_Ini");

}

//Page_Loadイベントを登録します

if(function_exists("Page_load"))

call_user_func("Page_load");

}

//__ビューステート

関数 viewstate()

{

foreach ($_REQUEST as $color){

$key=key($_REQUEST);

$controlName=$key."_Text";

エコー($ key。 "---"。$ color。 "< br>");

グローバル $$controlName;

_

次($_REQUEST);

}

}

?>

http://www.bkjia.com/PHPjc/477976.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/477976.html技術記事 paip.PHP-aspjsp は、イベント メカニズムを実装します。 WEBFORM スタイルの開発 序文... 1 CODE コード分離... 1 ページ コントロール... 1 フォームの実装... 2 ステート VIEWSTATE 保存の実装... 2 Page_Ini イベントと。 .
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート