2016-05-19 8 views
0

私は一度に1つの質問を1つの質問に更新する方法を構築しようとしています。 基本的に私のページには、ユーザが最も重要な情報を提出できるようにするフォームを表示するdivが必要です。たとえばfirstnameです。それが記入されたら(フォーム上の成功)、そのdivをリフレッシュして、姓の2番目の最も重要なフォームを表示するか、誕生日などに既に記入されているかどうかを確認します。CakePHP - ajaxを使った要素/ビューセルのリフレッシュ

linkedinとよく似ているように、プロフィールにもう1枚追加するように求められます。

どうすればよいですか?

私の最初の考えは、要素を使用することでした。しかし、私はフォームにデータを入れるために既存のプロファイルデータを取得する必要があり、どのように要素がそのデータを取得するのか、requestActionを乱用することはオプションではありません。

私はその場合、どの要素をレンダリングすべきかを決定するコントローラーアクションを呼び出す必要があり、それを変数にレンダリングし、jsonでそのページを更新するjs(response-> body)をサブミットします。少し汚れているようですが汚れていますが、うまくいくはずです。

次に、ビューセルがあります。彼らはajaxを介して呼び出すまで、タスクには理想的です。それは正しいことではありませんか?

それでは、どうやってそのようなものを作るのですか? 必要な情報のフォームを表示するために、データがある場合にデータが事前入力され、次に自動的に更新される必要があるフォーム。

答えて

1

ビューセルはAJAXリクエストでは実際に使用できません。これは彼らが考えたものではありません。

セルを保持したい場合は、SoCを適切にフォローして、すべてのビジネスロジックをモデルレイヤに配置することをお勧めします。

外部からリクエスト(セルではありません)で到達可能な別のコントローラとアクションがあり、そこから同じコードを使用してJSONとしてデータを返します。

コントローラのアクションでセルをインスタンス化し、その出力を送信することもできます。しかし、正直言って、私はそれを行うのはかなり醜い方法だと思う。

+0

私はそれを試してみましょう。私はちょっと質問を簡略化しました。なぜなら、この瞬間にセルがほとんどモデルを呼び出すからです。 少なくとも、ajax経由でセルに到達できないことを確認して良かったです。 –

関連する問題