2011-06-23 17 views
2

CodeigniterのHMVCに新着Codeigniter HMVCとjQueryからのビューの呼び出し

動的フォームでは、ユーザーがリンクをクリックしたときに新しい「セグメント」を作成できます。

現在、セグメントhtml & phpはmodule/view/segment_view.phpにあります。ビューには動的なPHP変数も必要です。

jQueryを使用して「ビューを読み込む」方法はありますか?私はjQueryから直接ビューをロードすることはできないが、AJAX呼び出しのためにコントローラをどのように構造化するかについては迷っていることを理解しています。 Codeigniterの強みではないようですね。

編集:
「セグメント」はフォーム内にあります。フォームには常に1つのセグメントがあります。 jQueryはより多くのセグメントを追加できます。各セグメントには、フォーム入力と検証のためのPHP配列が必要です。ここで

がform_viewファイルのダウン切り詰めバージョン

for ($i=1; $i<=$number_of_segments; $i++) { 

    $data['location'] = array(
     'name' => "segment[$i][location]", 
     'value' => set_value("segment[$i][location]"), 
     'maxlength' => '255', 
     'size' => '30' 
    ); 
?> 
    <div class="area"> 
     <div class="row"><h2>Segment <?php echo $i;?></h2></div> 

     <?php 
     $this->load->view('module/segment_view', $data); 
     ?> 

    </div> <!--/div class="area"--> 
<?php 
} //end for 
?> 

OKですので、これは本当にプレゼンテーションからアプリケーションロジックを分離していない、今それを何ですか?ハハ。では、これを構造化する最良の方法は何ですか?コードはHMVCで、PHPコントローラ/ビューやjQueryからアクセスできますか?

答えて

3

ビューファイルをURLで直接呼び出すことはできません。ビューをロードするコントローラメソッドを呼び出す必要があります。

あなたには、いくつかの「AJAXだけ」のものをしたい場合は、この機能を使用することがあります。

if ($this->input->is_ajax_request()) // Do ajax stuff 

例には、ビューの断片またはJSONをロードすることになります。あなたのコントローラに "ajax only"メソッドを作る必要はありません。既存のコントローラメソッドの中からこの関数を使って、ajaxリクエストの場合には何か違うことをすることができます。

これが何かを解決するかどうかわからない場合は、何らかのコードを追加して、何をしようとしているのかをさらに詳しく説明してください。

+0

ありがとう、私は 'is_ajax_request'が私が探しているものだと思っていますが、私はまだ複雑なHMVCを実装するための適切な方法を完全に把握しようとしています。可能であれば、私の編集内容を確認してください。再度、感謝します。 – csi

+0

@ChristopherIckes:ご迷惑をおかけして申し訳ありませんが、あなたの編集を見ても、何をしようとしているのか、問題があるのか​​分かりません。私が知る限り、HMVCやjQueryに関連するものはまったくありません。 –

+0

ハハ、それは本当です!しかし、 'is_ajax_request()'が答えでした。コントローラとビューで上記の質問を分けて、ビューロジックを削除しました。今は 'is_ajax_request()'を使って必要な部分をリクエストできます。アイデアが開発され、コードはHMVCで、魅力的なように機能します。ありがとう。 – csi

関連する問題