我必須知道..codeigniter表單設置值?
是
$this->form_validation->set_value('first_name')
一樣
$this->input->post('first_name')
?
他們似乎都得到了輸入值。如果我驗證輸入,第一個更安全嗎?
我必須知道..codeigniter表單設置值?
是
$this->form_validation->set_value('first_name')
一樣
$this->input->post('first_name')
?
他們似乎都得到了輸入值。如果我驗證輸入,第一個更安全嗎?
set_value()
用於在驗證失敗後重新填充表單。沒有其他過濾器,所以如果您不需要將值傳遞迴表單,則應該使用$this->input->post()
。如果在第二個參數設置
我有輸入修剪,當我使用set_value('電子郵件'),重新填充字段被修剪。所以我不認爲set_value()沒有濾鏡效果。 – OMGPOP 2012-08-26 04:50:52
我想你指的是這樣的:
<input type="text" name="quantity" value="<?php echo set_value('quantity', '0'); ?>" size="50" />
在這種情況下set_value
只是重新填充上驗證錯誤的領域。這:
$this->input->post('first_name');
是剛開的first_name
的$_POST
值。
set_value()
可以返回一個默認值,如果電場未與表單驗證庫驗證,將不返回任何東西,而$this->input->post()
將返回即使沒有處理領域的$_POST
值由驗證庫。
如果在輸入上運行「prep」規則,那麼這兩個函數都會返回修改後的值。
當你想讀一個崗位價值,只是用$this->input->post()
,該set_value()
型功能,如set_select()
和set_checkbox()
居然會像selected="selected"
而不是實際的輸入值返回的東西,所以這不會對複選框,收音機工作,選擇。
非常翔實的解釋!謝謝! – CyberJunkie 2011-05-25 03:22:30
'set_value()'的行爲也與數組$ _POST值不同。簡而言之 - 它被用來重新填充表格,而不再是其他。 – 2011-05-25 03:24:34
與以前的驗證庫validation->first_name
和input->post(‘first_name’)
是可以互換的,但新的庫不會更改後的值。
我認爲第二個更好,第一個.. – Harsh 2011-05-25 03:21:10