1

検索結果の 1 つのエントリの内容 (写真、名前、共通の友達の数など) を記述するいくつかの php 変数を含む html コードがあります。これは、以下のコードでは search_results_v.php と呼ばれます。データベースからの複数のレコードを含む配列があり、これらのそれぞれに対して検索結果エントリを作成します。私がプログラムを構築した方法は MVC であるため、html コードはビューであり、php コントローラーがあります。

ただし、Web サイト用のテンプレートがあり、このテンプレートに検索結果を含めたいと考えています。これは、この Web ページの適切な部分でコントローラーを呼び出すことで簡単に解決できますが、コントローラーがすべてを制御するようにアプリケーションを作成したいと考えています。ビューがコントローラーを呼び出していると述べたばかりの場合ですが、以下のような設定が必要で、コントローラーに Web ページを単に「含める」だけです。

php ロジックの量を最小限に抑えながら、検索結果を Web ページにレンダリングするにはどうすればよいですか? これを行うことを検討していた 1 つの方法は、すべての検索結果のすべての html コードを php 文字列変数に格納し、Web ページでこの変数への参照を作成することでした。その変数にhtmlコードをどのように格納できますか?

// Generates my search result box - Fill in the profile picture, the name and the number of mutual friends

    foreach ($resultsInfo as $entry) {
        $uid      = $entry['uid'];
        $pic_link = $entry['pic_square'];
        $name     = $entry['name'];
        $mfCount  = $entry['mutual_friend_count'];
        include('searchresults_v.php');
    }

編集:わかりました、おそらく私が目指していたのは正確にはMVCではありません。私は、実際のバックエンド コーディングをインターフェイスからできる限り分離しようとしていました。私は基本的に、すべての動的データを生成し、HTML ファイルにプレースホルダーをいくつか入れて、コンテンツを簡単に挿入できるようにしたかったのです。Web デザインの経験しかない人を混乱させるようなロジックをそこに入れたくありませんでした。 .

タイトルを何に変更すればよいか教えてください。

4

5 に答える 5

4

MVCでは、ビューには常にループステートメントと条件ステートメントを含めることができます。基本的な考え方は、ビューにクエリ/ビジネスロジックを実装しないことです。これは、モデルによって実行される必要があります。

あなたの場合、アーキテクトすべきもの、IMHOは次のようなものです。

  1. コントローラーはモデルを呼び出します。モデルは必要なすべての情報を生成し、それを配列、json文字列、またはクラスオブジェクトとしてフォーマットして、コントローラーに返します。

  2. コントローラは、このデータをビューに接続します。ビューはarray/json / objectをループし、ページを表示する必要がある形式でコンテンツを表示します

于 2012-08-17T19:31:33.570 に答える
0

テンプレート内にビューを含めることはできますか? ビューのファイル名をテンプレートに渡して、テンプレートの途中に含めることができます。

于 2012-08-17T19:28:36.123 に答える
0

ハイ

ロジックなしで HTML ページを作成できます。ユーザーを含むテーブルの場合、ユーザーのサンプル行を 1 つだけ作成します。以下の例を参照してください。

<table>
     <tr>
        <td>Firstname</td>
        <td>Lastname</td>
        <td>Age</td>
     </tr>
     <tr class='user'>
        <td class='firstname'></td>
        <td class='lastname'><td>
        <td class='age'><td>
     </tr>
</table>

その後、PHP (Lib ex. Simple HTML Dom Parser) を使用して HTML ファイルをオブジェクトに解析します。

この時点で、jQuery が "find(.firstname)" を行うように要素を選択して、ビュー内の要素を複製、削除、名前変更、塗りつぶすなど、PHP を使用してビューを生成できます。ビューを編集したら、オブジェクトから HTML を生成します。

Web デザイナーは HTML と CSS を使用してビューを作成するだけでよく、テンプレートがどのように機能するか (例: PHPTal) を学習する必要がないため、私はこの方法を好みます。

この助けを願っています

于 2012-11-14T08:50:45.040 に答える
0

CodeIgniter、CakePHP、Symfony などのフレームワークなしで先に進みたい場合は、Smarty をチェックしてください。非常に使いやすく、テンプレートを非常に読みやすくします。ロジックを最小限に抑えることはできますが、必要に応じてロジックを配置するのに十分な足元のスペースが得られます。

http://www.smarty.net/

http://www.smarty.net/syntax_comparison

smarty を使用すると、テンプレートを生成するファイルをコントローラー/ビューとして扱うことができます。すべてのロジックを実行し、すべてのデータを収集してから、それを smarty テンプレートに渡します。

于 2012-08-17T19:47:21.027 に答える
-2

jquery(または他のJsフレームワーク)を使用してJSONでデータを取得し、phpが提供できないすべてのクライアントの副作用を追加します

于 2012-08-17T19:52:48.867 に答える