如何提交可以根據URI做兩件不同事情的表單?例如,如果URI包含字符串「new」,則表單將以不同於「new」不在URI中的方式提交。Codeigniter:提交表格
我遇到了麻煩,因爲當提交表單時,它需要任何「form_open」所說的URI。
如何提交可以根據URI做兩件不同事情的表單?例如,如果URI包含字符串「new」,則表單將以不同於「new」不在URI中的方式提交。Codeigniter:提交表格
我遇到了麻煩,因爲當提交表單時,它需要任何「form_open」所說的URI。
改變form_open路徑可能不是這樣做的方式。你怎麼用這個?填寫表格的人是否會影響「新」字符串?
我會做的是在窗體上放置一個隱藏的輸入,並將THAT值設置爲「新」。然後在控制器中,使用GET獲取輸入表單的值,並根據該變量的值執行簡單的IF/ELSE語句。
這樣,你可以設置幾種不同的方式來使用相同的表單 - hidden = new,hidden = old,hidden = brandnew,hiddend = reallyold都可以不同地處理表單值,甚至將它們發送到你的不同表格DB或其他。
凱文 - 我想我會做這樣的事情之前,我有 - 這裏有一個快速瀏覽一下:
在routes.php文件:
$route['some/pathname/(:any)'] = "my_controller/my_function/$1";
然後在mycontroller.php:
function my_function($type)
{
if ($type == "new") {
do this }
elseif ($type == "update)" {
do this }
}
對,eddt。但是當我的表單被提交時會發生什麼?根據我的form_open('location'...),URI的變化,對吧?這會造成一個小問題! – 2010-05-18 15:27:45
那麼通常當我使用CI時,我創建了一個額外的路徑供我的表單提交,然後將表單指向控制器的那一部分,例如「some/formsubmit」(可能會或可能不會爲形式提交過程,取決於需求) - 這樣,無論提交來自何處(「新」或「更新」),他們都會去同一個提交地點!而且,由於您已經對TYPE進行了變形,您還可以將其傳遞給form_open字符串... – 2010-05-18 15:54:51
基本上,這是一個巨大的測試 - 我爲新用戶使用「新」,併爲只需要更新某些信息的用戶「更新」。隱藏輸入唯一的方法? – 2010-05-18 14:19:08
不,不是唯一的方法......你可以做一些像你原本想的事情。您可以在routes.php中創建兩個路徑,例如path/to/script/new和path/to/script/update - 然後,構建一個單一的表單視圖,但可以根據需要更改或操作您需要的內容無論表單是通過「新建」還是「更新」路徑加載的......這可能是您最簡單的解決方案! – 2010-05-18 15:01:29
嗯,你明白了。我一直在努力使用這個URI 3天。隱藏的輸入是要走的路。 – 2010-05-18 15:13:25