2016-11-16 1 views
0

cakephp 2.xでこのようなサインアップフォームを構築する方法はちょうどいいです: メンバーは複数の作業時間と複数の休暇を持つことができます。 1つの送信ボタンと3つの視覚的に分けられたエリア(memberdetails、workingtimes、vacationtimes)を持つ1つの大きなサインフォームが必要です。 会員登録時に、会員はメンバー詳細の中に自分の個人情報を入力し、任意の休暇と任意の休暇を指定された地域に追加してから提出ボタンを押す必要があります。フォーム全体を提出する前に、入力したすべての時間をフォームの中に表形式で表示する必要があります。ある時点で、メンバー詳細、作業時間、休暇などがよく見え、ユーザーはフォームを送信します(これは理想的な状況であり、一部の機能が欠落していることがわかります)。 私の最初のアプローチは、メンバーフォーム内に作業時間と休暇時間を追加するフォームを含め、Ajax-POSTを介してシリアル化されたフォームデータを他のコントローラアクション(Workingtime-> add、Vacationtime-> add)に送信し、 Ajaxを使った無駄なインデックス関数のようなもので、リロードせずにサインフォームにレスポンスを挿入することができます。これは、ほとんどの作業がcakephpによって行われ、javascriptでは行われないため、検証、セキュリティコンポーネント、またはビューレイアウトのようなものを維持すると思われますが、メンバーのデータベースIDをallreadyにしている場合にのみ機能します私は作業時間と休暇を保存することができます。すでに言われているように、私は1つのフォームを1つの提出ボタンで選び、どこに既に作業時間や休暇を追加したとしても登録全体を取り消すことができます。CakePHPの高度に統合されたSignUpフォーム

このように統合されたフォームを実現するためのケーキの方法は何ですか?フォームの読み込み中にトランザクションを開始してダミーメンバーを作成すると便利ですか?そして、このダミーレコードのIDを使用して、関連する作業時間と休暇を保存しますか?送信ボタンを押すとダミーメンバーが更新され、入力された個人データが保存され、すべてがコミットされますか?または、入力した関連モデルデータを保存せずに検証し、最後のトランザクションブロックにこれらのデータをキャッシュするだけですか? 他のアイデアはありますか?

答えて

0

私はこれを最善の方法は状態を管理することだと思います。ユーザーが基本データを入力して状態を変更できるようにすると、詳細情報を要求できますが、情報を関連付けて一致させるためのユーザーIDは既に持っています。ユーザーが後で戻った場合、ユーザーはすでに現在の状態になります。

Cakeを使用すると、Componentはあるステップから別のステップに進むのに役立ちます。入力する各データは検証される必要があります。

関連する問題