how to validate array value in codeigniter
It doesn't let me submit the form
If so, It sounds like a bug.
Temporarily, you can check whether duration[]
array is empty
or not:
if (! empty($_POST['duration'])) { $this->form_validation->set_rules('duration[]',"Duration", "trim|xss_clean|numeric");}
I'll update my answer if I found the main solution.
Update:This is a bug as I expected, I opened a PR at CodeIgniter Repository, that would fix this issue.
So as suggested by @ Hashem Qolami I did the following changes in my code and it worked.
$organization = $this->input->post('organization');$department = $this->input->post('department');$positions = $this->input->post('positions');$duration = $this->input->post('duration');foreach($organization as $ind=>$val) { $org = $organization[$ind]; $dept = $department[$ind]; $pos = $positions[$ind]; $dura = $duration[$ind]; $this->form_validation->set_rules("organization[".$ind."]", "Organization", "trim|xss_clean|max_length[1]"); $this->form_validation->set_rules("department[".$ind."]", "Department", "trim|xss_clean|max_length[50]"); $this->form_validation->set_rules("positions[".$ind."]", "Position", "trim|xss_clean|max_length[40]"); if(!empty($dura)) $this->form_validation->set_rules("duration[".$ind."]", "Duration", "trim|xss_clean|integer");}
and displayed my errors as follows
for($i = 0; $i < count($organization); $i++) { echo form_error("organization[".$i."]"); echo form_error("department[".$i."]"); echo form_error("positions[".$i."]"); echo form_error("duration[".$i."]"); }