0

私のアプリケーションでは、ユーザーはサインアップ用の独自の Web フォームを作成できます。新しく追加された各フィールドには、 、 、 の 3 つの要素field_namefield_typeありfield_rulesます。少なくともfield_nameを指定する必要があります。

私の問題は、検証が失敗したときです。ページをリロードすると、新しく追加されたフォーム フィールドが失われます。フォームエラーを各フォームフィールドに送り返し、フォームの検証が失敗したときにすべての作業を保持するにはどうすればよいですか?

編集:私が明確でなかったら申し訳ありません。さて、jQuery を使用してフォーム フィールドをページに追加します。複製された各 div には、field_name、field_type、および field_rules の 3 つのテキスト ボックスが含まれています。私がやりたいことは、CodeIgniter を使用してこれらの配列を反復処理し、必要な必須フィールドにコンテンツがあるかどうかを確認することです。そうでない場合は、ユーザー定義データが存在する、ユーザーが追加したすべての jQuery クローン div を含むフォーム ページにユーザーを送り返したいと思います。

$data 配列をチェックして、div を反復処理する必要があるかどうかを判断する条件付き構造に取り組んでいます。私が疑問に思っているのは、もっと簡単な方法があるかどうかです。つまり、次のページの読み込みなどでデータを jQuery に送信します。

4

3 に答える 3

1

これをチェックしてください:http ://www.jqbyte.com/StickyForms/

これは、新しく追加されたフィールドと値をCookieに保存するという便利なトリックです。

于 2013-01-09T19:53:08.410 に答える
0

この場合、フォーム送信の従来のモデルは、PHPによって出力される必要があるフォームフィールドを再作成するため、あまり実用的ではありません。

フォームの送信には、Ajax呼び出しの使用を検討する必要があります。Ajaxを使用すると、すべてのフォームフィールドを取得し、それらをリクエストにバンドルできます。その後、リクエストはサーバーに送信され、サーバー呼び出しから応答が返されます。

Ajaxを使用すると、ページ全体がリロードされません。サーバーからの結果を解析し、ユーザーに提示するのはユーザーの責任です。

これを実現するには、フォームの出力/送信を処理するコントローラーをリファクタリングする必要があります。送信コンポーネントはJSON、jQueryで簡単に解析できるように、結果をフォームに出力する別のコントローラーに配置する必要があります。

参照:これはあなたを助けるかもしれないように見えるチュートリアルです。

ご不明な点がございましたら、コメントを残してください。

于 2013-01-09T19:49:45.623 に答える
0

さて、私があなたに与えたいいくつかの提案があります。

jqueryを使用している場合は、非表示の入力フィールドを作成し、その値を0
に設定します。ユーザーがクローンdivを作成するたびに、その値を+1に更新します。
フィールドを送信して検証が失敗すると、投稿データが利用可能になります。
jquery document.readyを使用して、ページの読み込み時に実行され、非表示の入力の値を取得する単純な関数を呼び出します。
値が0の場合は何もせず、値が3であるとすると、3つのクローンdivを作成します。
このようにして、ユーザーはフォームを送信する前と同じ数のフィールドを持つことになります。

また、フォームを送信して投稿データを取得する方法は他にもあります。

jqueryajaxで検証に失敗したフォームを再入力する方法

于 2013-01-09T19:47:52.270 に答える