簡體   English   中英

Codeigniter驗證POST和數組數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM