2011-05-25 46 views
5

我必須知道..codeigniter表單設置值?

$this->form_validation->set_value('first_name')

一樣

$this->input->post('first_name') 

他們似乎都得到了輸入值。如果我驗證輸入,第一個更安全嗎?

+2

我認爲第二個更好,第一個.. – Harsh 2011-05-25 03:21:10

回答

4

set_value()用於在驗證失敗後重新填充表單。沒有其他過濾器,所以如果您不需要將值傳遞迴表單,則應該使用$this->input->post()。如果在第二個參數設置

+0

我有輸入修剪,當我使用set_value('電子郵件'),重新填充字段被修剪。所以我不認爲set_value()沒有濾鏡效果。 – OMGPOP 2012-08-26 04:50:52

3

我想你指的是這樣的:

<input type="text" name="quantity" value="<?php echo set_value('quantity', '0'); ?>" size="50" /> 

在這種情況下set_value只是重新填充上驗證錯誤的領域。這:

$this->input->post('first_name'); 

是剛開的first_name$_POST值。

7

set_value()可以返回一個默認值,如果電場未與表單驗證庫驗證,將不返回任何東西,而$this->input->post()將返回即使沒有處理領域的$_POST值由驗證庫。

如果在輸入上運行「prep」規則,那麼這兩個函數都會返回修改後的值。

當你想讀一個崗位價值,只是用$this->input->post(),該set_value()型功能,如set_select()set_checkbox()居然會像selected="selected"而不是實際的輸入值返回的東西,所以這不會對複選框,收音機工作,選擇。

+0

非常翔實的解釋!謝謝! – CyberJunkie 2011-05-25 03:22:30

+1

'set_value()'的行爲也與數組$ _POST值不同。簡而言之 - 它被用來重新填充表格,而不再是其他。 – 2011-05-25 03:24:34

2

與以前的驗證庫validation->first_nameinput->post(‘first_name’)是可以互換的,但新的庫不會更改後的值。