0

私はかなり長い間SOを検索してきたので、同様の質問がされて回答された場合は申し訳ありませんが、存在しないと思います.

PHP 検証スクリプトと jQuery Validate を使用して、サイトのすべてのフォームを処理しています。既知のフィールドでは問題ありません。ただし、ユーザーが追加の個人情報を入力できるページがあります。

ユーザーは、家族の名前をフォームに入力するよう求められます。ユーザーは、フォームを送信するか、追加の家族をフォームに追加することを選択できます。すべてのフィールドを適切に循環し、jQuery でのユーザー入力に基づいて一意のメッセージを表示する方法を完全には理解していませんが、メタデータと検証プラグインを使用して実行できることはわかっています。

私の問題はPHPにあります。各配列を取得して foreach ループを実行することはできますが、いずれかのフィールドでエラーが検出された場合、エラーが生成され、以前に入力されたすべてのフィールドのデータとともにフォームが再表示されます。エラーが発生したときにフィールドが動的に構築されているため、各フィールドの元のデータをどのようにポイントするかを判断できません。

デモンストレーションのために思いつく最も簡単な方法は次のとおりです。

ユーザーは、友達に食べてもらいたいパイの割合を入力する必要があります。彼はパイの 100% を配らなければなりません。ユーザーは、パイを食べる祭典に友人を動的に追加することを選択できますが、各人はパイの少なくとも 1% を受け取る必要があり、全員が一緒に 100% を食べる必要があります。

サンプルコード

フォームのセットアップを示すサンプル スクリプトをここに作成しましたが、テストする PHP バックエンドがないことは明らかです。バックエンドが機能するように想像力を働かせる必要があります (HTML のコメントに追加しました)。このデータはページからページへ渡される必要があるため、同じ原則が PHP SESSION 変数にも当てはまります (ユーザーがこのページに再度アクセスすると、パイの各部分に入力された金額が表示されます)。また、言うまでもありませんが、このデータはサーバー側で検証する必要があります。

4

1 に答える 1

0

PHP エラーが発生した場合、ページをリロードしませんか? その場合、foreach ループ内のエラーのインデックスがわかっているため、いくつかの変数 (複数のエラーを処理するための配列である可能性が最も高い) に保存されます。オプションを印刷して、送信された配列を再度ループしているときに、エラー配列にあるカウントに達したときに、テキスト ボックスに追加の css クラスを追加することはできません。

于 2012-06-06T00:14:40.573 に答える