[英]Codeigniter validate POST and array data
我正在嘗試驗證兩個數組
$this->form_validation->set_data();
和POST數據
$this->form_validation->set_rules();
在同一個方法中......
當我嘗試在我的控制器中使用這兩種驗證類型時,似乎數組驗證正在從POST字段中刪除所有數據。 我正在使用JS抓取訂單行項目並將它們作為JSON和解碼發送(從不是表單一部分的表中,但是將值添加到隱藏的表單字段以使用post仍然獲取),並添加了客戶詳細信息在一個表格本身。
我遇到的問題是我編寫的每個驗證(POST和Array)都可以獨立完成,但是當嘗試同時運行時,在頁面上提交POST數據(使用$this->form_validation->set_rules()
進行驗證)正在丟失...
由於隱藏字段未以相同方式驗證,因此數據將被保留...
任何人在查找之后都需要知道這一點(在發布問題之前花了這么長時間)
對於您設置的每個驗證組,必須先使用$this->form_validation->run()
運行驗證,然后再轉到下一個組/方法。
要驗證POST數據,請創建所有規則,然后立即運行它:
// Order Post Validations
$this->form_validation->set_rules("firstname", "First Name", "trim|required");
$this->form_validation->set_rules("lastname", "Last Name", "trim|required");
//run this section
$this->form_validation->run();
然后繼續
$this->form_validation->set_data($ValidationData);
$this->form_validation->set_rules($ValidationRules);
//run this section
$this->form_validation->run();
事實證明CI將覆蓋您在設置新組時所做的任何現有驗證(即使嘗試將它們作為單獨的陣列/組一起運行)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.