1
CodeIgniterで条件フィールドの検証を手伝ってもらえますか?CodeIgniterの条件付き検証
いくつかの顧客データを収集しようとしており、ユーザーがメールラジオボタンで「はい」を選択した場合、(住所、市区町村、郵便番号などの)フィールドの一部が必須になります。
Iは、以下のように設定/ form_Validation.phpでCodeIgniterのフォーム検証コードを持っている:
$config = array ('customer/new_customer' => array
(
array ('field' => 'firstName', 'label' => 'First Name', 'rules' => 'required'),
array ('field' => 'lastName', 'label' => 'Last Name', 'rules' => 'required'),
array ('field' => 'mail', 'label' => 'Mail', 'rules' => 'required'),
array ('field' => 'address', 'label' => 'Address','rules' => ''),
//other fields here
)
)。私は、ユーザーが「はい」を選択した場合「必要」などの住所、郵便番号やその他のフィールドを作成する方法がわからない
function new_customer()
{
$customer_id = $this->input->post('customer_id');
if ($this->form_validation->run() == FALSE)
{
if(($customer_id != "X") && ($customer_id != "")){
$data['add_or_edit'] = "add";
return $this->edit_customer($customer_id, 'add');
}else {
$data['title'] = "New Customer";
$data['add_or_edit'] = 'add';
$this->load->view('customer_form_view',$data);
}
}else{
$data['firstName'] = $this->input->post('firstName');
$data['lastName'] = $this->input->post('lastName');
if($this->input->post('mail') == "Yes")
{
$data['address'] = $this->input->post('address');
$data['city'] = $this->input->post('city');
//other fields
}
if(($customer_id == 'X') || ($customer_id == ''))
{
//add new customer
$customer_id = $this->customers_model->insertCustomer($data);
redirect("/customer/customerList");
}else{
//edit the customer matching the customerID
$this->customers_model->editCustomer($customer_id, $data);
redirect("/customer/customerlist");
}
}//end validation if
}//end function
:
私は/編集顧客コントローラで以下のコードを追加する必要がありますメールオプションで。
誰かがこれを手伝ってくれれば嬉しいです。あなたは、コールバック関数に続いて...あなたのメールオプションの検証ルールとして、
$this->form_validation->set_rules('mail', 'Mail', 'callback_mail_check');
ような何かをコールバック関数を可能性が使用することができ
どうもありがとう
よろしく、 PS
ありがとうございます。私はそれを試してみよう... メールオプションの検証ルールと実際のコールバック機能はconfig/form_validation.phpファイルにありますか? – Prats
コントローラに検証ルールを設定しても問題ありません。コールバック関数はコントローラ内に存在する必要があります。ドキュメントをチェックしてください。 –
@Prats、正確には、mail_check()の関数をメールとその他のフィールドの検証規則を設定するコントローラと同じコントローラに置きます。 – toopay