目次
1. 例:
1. フォームの準備
1. 自動生成 - $elements 配列の読み取り
ホームページ バックエンド開発 PHPチュートリアル ケーススタディ PHP Web フォームビルダー

ケーススタディ PHP Web フォームビルダー

Jul 11, 2020 pm 05:53 PM
php

ケーススタディ PHP Web フォームビルダー

この記事の例では、PHP Web フォーム ジェネレーターについて説明します。参考のために全員と共有してください。詳細は次のとおりです:

1. 例:

ケーススタディ PHP Web フォームビルダー

##関連する学習の推奨事項:

PHP プログラミング初心者から熟練者まで

2. 要件分析

実際のプロジェクト開発では、さまざまな帳票の設計が必要になることがよくあります。 HTML フォームを直接記述するのは簡単ですが、変更や保守は比較的面倒です。 したがって、PHP を使用して Web フォーム ジェネレーターを実装すると、特定のニーズに応じてさまざまな機能を備えたフォームをカスタマイズできます。具体的な実装要件は次のとおりです。

    多次元配列を使用してフォーム関連情報を保存する
  • サポートされるフォーム項目には、テキスト ボックス、テキスト フィールド、ラジオ ボックス、チェックボックスと5種類のドロップダウンリスト
  • 各フォーム項目のタグ、プロンプトテキスト、属性、オプション値、デフォルト値などを保存
  • 関数を関数にカプセル化し、渡されたパラメータに基づいて指定されたフォームを生成します。
#データの保存形式によって、プログラムの実装方法が決まります。

したがって、上記の開発要件に従って、各フォーム項目は配列要素として使用でき、各要素は、タグ、プロンプト テキスト、属性配列 attr、オプション配列 option、およびデフォルトの連想配列によって記述されます。値。デフォルト。

ケーススタディ PHP Web フォームビルダー3. ケースの実装

1. フォームの準備

#フォームの主な機能: Web ページ 情報の入力に使用される領域は、ユーザーが入力した情報を収集し、バックエンド サーバーに送信して処理を行い、ユーザーとサーバー間の対話を実現します。

例: ショッピングの決済や情報検索などはすべてフォームを通じて実現されます。
2. フォームの準備 - フォームの作成

完全なフォームは、フォーム フィールドとフォーム コントロールで構成されます。このうち、フォームフィールドはformタグで定義され、ユーザー情報の収集や伝達に使用されます。

<form action="form.php" method="post" enctype="multipart/form-data">
  <!-- 各种表单控件 -->
</form>
ログイン後にコピー

ケーススタディ PHP Web フォームビルダー

アクション属性の値は、絶対パスまたは相対パスにすることができます。この属性が省略された場合は、アクションが送信されることを意味します。処理対象の現在のファイル。
    GET メソッドで渡されたフォームは URL アドレス バーに表示されます。
  • GET メソッドと比較して、POST メソッドによって送信されたデータは目に見えず、対話中に比較的安全です。したがって、フォーム データの送信には通常 POST が使用されます。

    enctype 属性のデフォルト値は application/x-www-form-urlencoded です。これは、フォーム データを送信する前にすべての文字がエンコードされることを意味します。さらに、文字エンコードなしを示すために multipart/form-data (POST モード) に設定することもできます。特にファイルのアップロードを含むフォームではこの値を使用する必要があります。通常のテキストを送信するには text/plain (POST モード) に設定します。
  • 3. フォームを準備します — フォーム コントロール
//input控件
<input type="text" name="user" value="test">	<!-- 文本框 -->
<input type="password" name="pwd" value="">		<!-- 密码框 -->
<input type="file" name="upload">     		<!-- 文件上传域 -->
<input type="hidden" name="id" value="2"> 		<!-- 隐藏域 -->
<input type="reset" value="重置">     		<!-- 重置按钮 -->
<input type="submit" value="提交">    		<!-- 提交按钮 -->
ログイン後にコピー

type 属性に異なる値を設定して、異なるフォーム コントロールを取得します
  • name 属性はused フォーム内の複数の同一コントロールを区別するために、コントロールの名前を指定します。
  • value プロパティは、フォーム コントロールのデフォルト値を設定するために使用されます。
  • //input控件
    <!-- 单选框 -->
    <input type="radio" name="gender" value="m" checked> 男
    <input type="radio" name="gender" value="w"> 女
    <!-- 复选框 -->
    <input type="checkbox" name="hobby[]" value="swimming"> 游泳
    <input type="checkbox" name="hobby[]" value="reading"> 读书
    <input type="checkbox" name="hobby[]" value="running"> 跑步
    ログイン後にコピー
チェックされたプロパティは、デフォルトの選択項目を設定するために使用されます。
  • //textarea控件
    <textarea name="introduce" cols="5" rows="10">
    <!-- 文本内容 -->
    </textarea>
    ログイン後にコピー
テキストエリア コントロールは、自己評価、コメント、および大量の情報の入力が必要なその他の機能に適しています
  • cols 属性と rows 属性は、テキスト領域の高さと幅を定義するために使用されます。
  • //select控件
    <select name="area">
      <option selected>--请选择--</option>
      <option value="Beijing">北京</option>
      <option value="Shenzhen">深圳</option>
      <option value="Shanghai">上海</option>
    </select>
    ログイン後にコピー
select は、ドロップダウン リストを定義するタグです。
  • optionドロップダウン リストの特定のオプションを定義するタグです
  • The selected 属性は、デフォルトの選択項目を設定するために使用されます
  • 4. フォームの準備 - ラベル マーク

フォーム コントロールを作成するとき、より良いユーザー エクスペリエンスを提供するために、入力コントロールはラベル マークと組み合わせて使用​​されることがよくあります。コントロールの選択を拡張します。

たとえば、性別を選択する場合は、プロンプト テキスト「男性」または「女性」をクリックするか、対応するラジオ ボタンを選択します。
ラベル タグを使用してラジオ ボタンとプロンプト テキストを囲み、ラベル タグ内のコンテンツをクリックすると、対応するフォーム コントロールが選択されるようにします。

<label><input type="radio" name="gender" value="m">男</label>
<label><input type="radio" name="gender" value="w">女</label>
ログイン後にコピー
5. 多次元配列

事例の需要分析によれば、フォーム項目の関連データは多次元配列に均一に保存されます。 。このうち、数値キー名は帳票項目を区別するために使用され、各帳票項目は二次元の連想配列となっています。

// 利用多维数组保存表单元素
[
  0 => [],	// 表单项---单选按钮
  1 => [],	// 表单项
  2 => [],	// 表单项---文本框
  3 => [],	// 表单项
  ……
];
ログイン後にコピー
// 每个表单项的数组结构
0 => [
  &#39;tag&#39; => &#39;&#39;, 	// 标记----input、textarea、select
  &#39;text&#39; => &#39;&#39;, 	// 提示文本----label标签内显示的内容
  &#39;attr&#39; => [],	// 属性数组----表单元素的属性,如type
  &#39;option&#39; => [], 	// 选项数组----单选框或复选框中的每个选项
  &#39;default&#39; => &#39;&#39;	// 默认值----默认值
],
ログイン後にコピー
//准备表单数组
// $elements数组保存整个表单
$elements = [
  0 => [],		// 第1个表单项数组
  1 => [],		// 第2个表单项数组
];
ログイン後にコピー
//文本框
0 => [
  &#39;tag&#39; => &#39;input&#39;,
  &#39;text&#39; => &#39;姓  名:&#39;,
  &#39;attr&#39; => [&#39;type&#39; => &#39;text&#39;, &#39;name&#39; => &#39;user&#39;]
],
ログイン後にコピー
//单选框
3 => [
  &#39;tag&#39; => &#39;input&#39;,
  &#39;text&#39; => &#39;性  别:&#39;,
  &#39;attr&#39; => [&#39;type&#39; => &#39;radio&#39;, &#39;name&#39; => &#39;gender&#39;],
  &#39;option&#39; => [&#39;m&#39; => &#39;男&#39;, &#39;w&#39; => &#39;女&#39;],
  &#39;default&#39; => &#39;m&#39;
 ],
ログイン後にコピー

オプションは、連想配列を使用して特定のラジオ オプションを保存します。キー名 m と w は、ラジオ ボタンの値属性であり、対応する値は「男性」ですオプション プロンプト情報

default の値はオプション連想配列内のキー名であり、どの項目がデフォルトで選択されるかを示します

//复选框
4 => [
  &#39;tag&#39; => &#39;input&#39;,
  &#39;text&#39; => &#39;爱  好:&#39;,
  &#39;attr&#39; => [&#39;type&#39; => &#39;checkbox&#39;, &#39;name&#39; => &#39;hobby[]&#39;],
  &#39;option&#39; => [&#39;swimming&#39; => &#39;游泳&#39;, &#39;reading&#39; => &#39;读书&#39;, &#39;running&#39; => &#39;跑步&#39;],
  &#39;default&#39; => [&#39;swimming&#39;, &#39;reading&#39;]
],
ログイン後にコピー
//下拉列表
5 => [
  &#39;tag&#39; => &#39;select&#39;,
  &#39;text&#39; => &#39;住  址:&#39;,
  &#39;attr&#39; => [&#39;name&#39; => &#39;area&#39;],
  &#39;option&#39; => [&#39;&#39; => &#39;--请选择--&#39;, &#39;BJ&#39;=>&#39;北京&#39;, &#39;SH&#39;=>&#39;上海&#39;, &#39;SZ&#39;=>&#39;深圳&#39;]
],
ログイン後にコピー
//文本域
6 => [
  &#39;tag&#39; => &#39;textarea&#39;,
  &#39;text&#39; => &#39;自我介绍:&#39;,
  &#39;attr&#39; => [&#39;name&#39; => &#39;introduce&#39;, &#39;cols&#39; => 50, &#39;rows&#39; => 5]
],
ログイン後にコピー
//提交按钮
7 => [
  &#39;tag&#39; => &#39;input&#39;,
  &#39;attr&#39; => [&#39;type&#39; => &#39;submit&#39;, &#39;value&#39; => &#39;提交&#39;]
]
ログイン後にコピー
form

1. 自動生成 - $elements 配列の読み取り

実装アイデア

  • ユーザーが送信したデータの処理を容易にするために、$elements の各フォーム項目が指定された配列とマージされ、各フォーム項目に 5 つのキー (tag、text、attr、option、default) が含まれるようになります。要素を同じ順序で並べます。
  • #タグの値に従って、「generate_」というプレフィックスが付いた関数を呼び出してフォーム項目を結合します。
  • 各フォーム項目は 1 行を占め、結合されたフォームを返します
2. フォームの自動生成 - フォーム要素の属性の結合

実装アイデア

    関数generate_attr($attr, $items = '' ) フォーム要素属性の結合を完了するために使用されます
  • #$attr 配列内の要素のキーは属性名であり、要素の値は属性の値です
  • type="radio" name="gender"
  • # など、トラバースして属性と $item の結合を完了します。
#3. フォームの自動生成 - 入力要素の結合

実装アイデア

    オプション要素が含まれているかどうかに基づいて、単一選択か複数選択かを判断します。
  • そうでない場合は、属性関数を直接呼び出します。フォーム項目のスプライシングを完了するには
  • #その場合は、順番にトラバースします 複数のオプションのスプライシングを完了し、

  • ケーススタディ PHP Web フォームビルダー
4 を返します。 フォームの自動生成 -選択要素の結合

##実装のアイデア

ドロップダウン リストの結合オプション
  • 選択タグの完全な結合を完了して戻る
  • ケーススタディ PHP Web フォームビルダー
  • 5. フォームの自動生成 - textarea 要素の結合

実装アイデア

textarea 要素の属性の結合
  • テキストエリアを完全に結合して返す

  • ケーススタディ PHP Web フォームビルダー

以上がケーススタディ PHP Web フォームビルダーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

See all articles