7

私はこれに間違った方法でアプローチしているかもしれないと思うので、コメント/ガイダンスをいただければ幸いです。うまくいけば、私が達成しようとしていることを十分に首尾一貫して説明することができます:

  • HTMLのブロック(たとえば、ユーザーのプロファイルを含むボックス)を作成したいのですが、これをレイアウトの一部として、生成するほとんどのページにロードします。

  • また、このボックス内のコンテンツを別のURLから独自に再生成できるようにしたいと思います。これは、AJAX呼び出しでボックスを更新できるようにするためです。

  • このHTMLを作成するコードを複製したくありません。

AJAX呼び出しを使用してこのボックスを最初にロードできたことに感謝しますが、サーバーに不要な呼び出しを追加するように思われますか?

私がそれを行うことができると思った方法は、HTMLのこのブロックをレンダリングするだけのメソッドをコントローラーに持つことですが、別のコントローラー/ビュー内でこのメソッドからの出力をどのように要求しますか?

これにどのようにアプローチしますか?

前もって感謝します

4

2 に答える 2

8

ユーザーのプロファイルの HTML ブロックを生成するビューを作成し、次を使用してコントローラーから呼び出します。

$user_html = $this->load->view('user_view', $user_data, true);

3 番目のパラメーターは、ビューを表示するのではなく、文字列として返します。これは、通常の方法で別のビューに渡すことができます。

$data['user_block'] = $user_html;
$this->load->view('page_view', $data);
于 2008-11-28T12:45:36.297 に答える
-1

データに関する限り、PHP で HTML を生成する必要はありません。jQueryを使用して、ページ ソースの JSON オブジェクト出力から必要な要素を生成できます。次に、要素が「domready」の状態になるまでの間、要素に小さな「読み込み中」のアニメーションを表示できます。

div の再作成に関する限り、次の手順を実行します。

プロフィールの div を作成し、id を付けます。データの各「要素」を独自の p 要素に入れ、実際のデータを span 要素でラップします。例 <p>Name: <span>Joe Bloggs</span></p> 次に、jQueryを使用して dom をトラバースし、スパンにデータを再入力します。データを正しい「順序」で出力していることを確認してください。

ご不明な点がございましたら、お気軽にフィードバックをお寄せください。

于 2008-11-28T22:01:33.443 に答える