2011-06-23 34 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 
?> 

確定的削減版本,所以這是不是真的從演示中分離應用程序邏輯,現在是什麼呢?哈哈。那麼構造這個的最好方法是什麼,以便代碼是HMVC,並且可以通過php控制器/視圖以及jQuery訪問?

回答

3

您無法直接通過URL調用視圖文件,您需要調用加載視圖的控制器方法。

如果你想要做一些「阿賈克斯唯一」的東西,你可以使用這個功能:

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

例子是加載視圖片段或JSON。您不必在控制器中創建「僅限ajax」方法,如果它是ajax請求,則可以在現有控制器方法內使用此函數來執行不同的操作。

不知道這是否能爲您解決任何問題,提供一些代碼和更多關於您正在嘗試執行的內容的內容,我們可以給您一些更明確的建議。

+0

謝謝,我相信'is_ajax_request'是我正在尋找的,但我仍然試圖完全掌握實現複雜HMVC的正確方法。如果可以,請檢查我的編輯。再次感謝。 – csi

+0

@ChristopherIckes:我很抱歉承認,但在看到您的編輯後,我仍然無法弄清楚您正在嘗試做什麼,或者您遇到了什麼問題。據我所知,與HMVC或jQuery完全沒有關係。 –

+0

哈哈,這是真的!但是'is_ajax_request()'是答案。我在控制器和視圖中分隔了上述問題,並刪除了視圖邏輯。現在我可以使用'is_ajax_request()'來請求我需要的部分。現在這個想法被開發出來,代碼是HMVC,而不是gobbledy gook。謝謝。 – csi