2011-09-15 6 views
5

ここに私のコントローラコードがルールを設定することです:配列をフィールド名として使用すると、これが間違っているか、CodeIgniterフォーム検証ライブラリにバグがありますか?

// Previous address(es)   
$this->form_validation->set_rules('prev_house_number[]', 'House Number',  'trim|alpha_numeric'); 
$this->form_validation->set_rules('prev_abode[]',   'Abode',   'trim'); 
$this->form_validation->set_rules('prev_house_name[]',  'House Name',  'trim'); 
$this->form_validation->set_rules('prev_address_line_1[]', 'Address Line 1', 'required|trim'); 
$this->form_validation->set_rules('prev_address_line_2[]', 'Address Line 2', 'trim'); 
$this->form_validation->set_rules('prev_city[]',   'Town/City',  'required|trim'); 
$this->form_validation->set_rules('prev_county[]',   'County',   'trim'); 
$this->form_validation->set_rules('prev_postcode[]',  'Postcode',   'required|max_length[9]|trim'); 
$this->form_validation->set_rules('prev_country[]',   'Country',   'trim'); 
$this->form_validation->set_rules('prev_months[]',   'Previous Months', 'trim|integer'); 
$this->form_validation->set_rules('prev_years[]',   'Previous Years', 'trim|integer'); 

ユーザーができる5つの以前のアドレスまでの入力、よう:

Form validation

住所1つのフィールドの背後にあるコードがどのように見えますこの: A:

<div class="input w100 f-left c-none"> 
    <input type="text" class="address_line_1 postcode_prev_address_1" id="prev_address_line_1[]" name="prev_address_line_1[]" value="<?php echo set_value('prev_address_line_1[]');?>"/> 
    <label for="prev_address_line_1[]">Address Line 1 <span class="required">*</span></label> 
</div> 

ここで問題がありますssuming私は5つのアドレスが入力されており、フォーム上で検証が失敗し、5つの入力エリアすべてが正しく再投入されます。 しかし、CodeIgniterの検証は、配列入力では機能しません。

ここで検証した後、直接スクリーンショットです:あなたが見ることができるように、それが正しい値でフォームを再生成しますが、それは彼らに対して検証ルールを適用していないと認識していないようだ、

form validation fail

コントローラ内からのそれらの存在。

どうすればよいですか?

ありがとうございます!

ジャック

+1

これはバグです。私はそれが2.1で世話をしたと信じていますが(GitHub上で開発する)、それについて私を引用しないでください。 –

+0

フィルを明確にしてくれてありがとう。私はGitの変更をチェックアウトします! – Jack

+0

申し訳ありませんが痛みはありますが、私はGithubのどこにいてもこれを修正するために苦労しています。あなたは正しい方向に私を向けることができますか? – Jack

答えて

関連する問題