2012-09-17 52 views
1

我有一個網站,大多數網頁都顯示一個常見的表單。表單代碼位於一個單獨的文件,並在每個視圖加載像這樣:如何處理多個視圖和控制器常見的表單?

<?php $this->load->view('includes/quote'); ?> 

我這樣做,這樣我就不必重複代碼,每個控制器和視圖。表單數據將用於創建電子郵件。表單顯示正確,但我無法弄清楚如何處理輸入數據。由於涉及多個控制器,我是否需要創建一個單獨的控制器來處理數據?處理這種情況的最好方法是什麼?

+1

將'action'留在您的表單中,它將被提交給當前控制器並創建單獨的方法來處理您的表單,這將從您的控制器調用 –

回答

0

使用我的控制器將擴展ci_controller。之後,每個控制器將擴展my_controller。在my_controller中創建所有其他控制器共享的方法。這樣你不必寫他們。他們將可用。同樣,在每個控制器上,您都可以通過書寫ectra代碼來提交表單,只需處理您來自哪個控制器的url即可。爲此目的使用current_url()方法。這將有所幫助。

+0

我熟悉MY_Controller基類擴展,但如果函數在MY_Controller中,OP將如何發佈數據給他們?職能必須是面向公衆的; (糾正我,如果我錯了)屬於父類的功能不是。 –

+0

您可以訪問在子類my_controller功能,只需撥打你的子類來my_controlelr方法。這就是它 –

+0

感謝所有提供想法的人。使用MY_controller並將控制器名稱作爲一個變量傳遞給視圖的技巧。我感謝所有的意見和建議。 – Chuck

0

無論什麼Raheel說(普通控制器,它具有處理表單提交的函數),或創建時,你需要做的處理,其被包括圖書館,你可以調用庫方法。

0

我會從每個控制器傳遞變量以識別控制器,其當前正在使用。您可以使用它來更改表單的屬性action,以便它指向正確的控制器。

此外,您還可以使用該變量在表單中創建隱藏字段,因此,通過檢查$_POST中的變量,您將能夠知道提交了哪種表單。

+0

傳遞一個變量是一個好主意。謝謝你的提示。 – Chuck

相關問題