2013-03-27 124 views
1

我使用codeigniter處理幾個monts,現在我遇到了一些問題。 我有一個簡單的形式與幾個輸入字段。 可以說名稱,地址,電話,電話網絡提供商。 因此我將所需的規則設置爲姓名和地址,但電話和網絡是可選的。 這裏來的痛苦。如果在電話區域輸入了某些內容,我想將所需的規則設置到網絡中。我可以用JS做到,但這不是重點。我也想要服務器端檢查。 有沒有人有任何想法如何在更多的codeigniter環境中做到這一點?Codeigniter重新驗證表單

乾杯!

回答

0

在你的控制器,在那裏你設定表單驗證規則,做這樣的事情:

if ($this->input->post('phone_number') != '') { 
    $this->form_validation->set_rules('phone_carrier', 'Phone carrier', 'required'); 
} 

這樣一來,對於phone_carrier規則將僅一個電話號碼提交設置。您的驗證將按照設定的規則進行。

這會工作嗎?

+0

我會試試這個方法。我想感謝你的幫助,我發現了我的錯誤。我只應在form_validation-> run()執行之前聲明規則。謝謝 :) – 2013-03-28 07:40:04

0

這是一個常見的情況,很容易實現:只需提供電話號碼規則,但不要將其指定爲「必需」。

您可以使用一些新類型的級聯規則修改表單驗證模塊,但爲什麼不自己簡單地進行必要的檢查?

+0

我想你並沒有很好地理解我。 :) 手機領域不是必需的,但我希望當有人鍵入的東西,下一個領域的電話網絡提供商根據需要設置,但只有在手機已滿。 – 2013-03-27 14:40:01

+0

這是我想到的第一件事,但我想將它移動到codeigniter的「本地」。我的意思是我希望我的代碼保持清潔。 就像我想顯示的錯誤低谷form_error(); – 2013-03-27 14:47:48

+0

有什麼想法?謝謝! :) – 2013-03-27 15:04:03