PHP の SQL 値を介して、大規模な HTML フォームを動的に設定する
P粉765570115
P粉765570115 2023-09-10 17:28:20
0
1
599

この質問は、コードの書き方よりも、「スケール」の観点から実装したいプロセス/ロジックに関係しています。

WordPress には、HTML として読み込まれるフォームがいくつかあり、ユーザーがカスタム投稿 (実際には、CMS に慣れていない人のための新しいデータベース エントリ) を作成すると、新しい「イベント」が記録されます。これはデータベースエントリ/ポストの名前と値を設定するために update_post_meta() を使用しているため、すべてを手動でマッピングしたくありません。そのため、フォームが送信されるときに PHP ループ foreach を使用します。 ($_POST as $ name => $value) { このイベントのすべてのデータベース テーブルを設定します。

これは正常に機能しますが、ユーザーがフォームを保存し、後で編集するために戻ってきた場合、値が存在する場合は次のようにエコー バックするようにします。

リーリー

繰り返しますが、このアプローチはうまく機能しますが、このページには約 500 個のフィールドがあるため、各フィールドに一意の変数 (この場合は $reported_by) を手動で設定すると、かなりの費用がかかります。基本的にコードベースが 50% 近く増加するため、メンテナンスが困難で非効率的になります。

この問題を解決する方法について何かアイデアはありますか?当然のことながら、php を介してフォームを構築し、それを HTML でエコーすることはできますが、これも非常に手動のプロセスのように感じられます。 PHPはサーバーサイドなので、AJAXを使用しない限り、クライアントサイドでタグ/入力の名前の値を簡単に取得することはできませんが、それもかなり手動になるような気がします。

したがって、変数名を手動で設定することなく、このプロセスを 500 フィールドすべてに簡単に拡張できる方法がない限り、何があっても、多くの重複した作業に直面することになります。

お時間をいただきありがとうございます!

P粉765570115
P粉765570115

全員に返信(1)
P粉308089080

最初に注意すべきことは、フォーム入力ごとに異なる名前のローカル変数を実際に作成する必要はないということです。つまり、次のように記述する必要はありません:

リーリー

次のように書くことができます:

リーリー

これが役立つのはなぜですか? この 入力項目に関連するコンテンツは 2 つだけであるため:

  • タグ「記者(フルネーム)」
  • フィールド名「reported_by」、複数の場所で使用されています

これらはどちらも単なる文字列なので、PHP 変数に簡単に抽出できます。 リーリー

これらは

parameters によく似ているので、$incident_id も渡すことを忘れずに、これを関数に変換しましょう: リーリー

これで、500 個の入力項目を表示するには、

display_input 関数を 500 回呼び出すだけで済みます。これを回避するには、配列と foreach ループを使用します。 リーリー その後、配列をハードコーディングする代わりに、構成ファイルまたはデータベース テーブルから配列を取得できます。繰り返しの部分 (HTML レンダリングの詳細) を自動化し、表示するフィールドのリストを定義するという「楽しい」部分だけを残しました。

一部のフィールドを少し変更する必要がある場合は、関数 (および構成配列) に追加のオプションを追加できますが、あまり多くの変更がない限り、コードは非常にシンプルかつ単純なままになるはずです。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート