2011-12-08 27 views
5

Có từng khách hàng với từng chi tiết riêng lẻ. Đây là một ví dụ rất SIMPLE.Trình mã vạch - Hiển thị thông báo lỗi riêng lẻ cho các trường mảng

<input type="text" name="customer_names[]" />

Trong CodeIgniter, mỗi customer_name cần
$this->form_validation->set_rules('customer_names[]','Customer Names','required');

Nếu bất kỳ tên khách hàng là trống, validation_errors(); cho thấy một thông điệp cho toàn bộ mảng.

Làm cách nào để có được thông báo lỗi riêng cho khách hàng đó?

LƯU Ý: echo form_error('customer_names[0]'); là những gì tôi đang cố gắng đạt được nơi customer_name 0 được để trống.

+0

Theo các tài liệu, mà shoul công việc: http://codeigniter.com/user_guide/libraries/form_validation.html#arraysasfields bạn đang nhìn thấy gì? – swatkins

Trả lời

1

Nhìn vào các tài liệu Form Validation, đặc biệt là phần Using Arrays as Field Names, tôi nghĩ rằng bạn sẽ cần phải đặt tên một cách rõ ràng đầu vào của bạn bằng cách bao gồm các chỉ số trong tên để có được những form_error() phương pháp để làm việc như bạn mong muốn.

Vì vậy, để form_error('customer_names[0]') hoạt động, sẽ thực sự phải là đầu vào có tên customer_names[0].

+0

Điều này làm việc tốt cho tôi, mặc dù tôi phải đặt tên rõ ràng các trường của mình bằng các khóa tương ứng của chúng để hữu ích. [Câu trả lời ở đây] (http://stackoverflow.com/a/32304264/4065407) nói rằng CodeIgniter 3 có một tính năng cho việc này. –

+0

Câu trả lời của @machineaddict chỉ giống như vậy nhưng tôi không cần chỉ định chỉ mục trong tên quy tắc. –

0

Tôi đã gặp cùng một sự cố với CodeIgniter 2.1.3. Tôi đã giải quyết nó như thế này:

Đầu vào là:

<input type="text" name="customer_names[0]" />
<input type="text" name="customer_names[1]" />
...

Các hình thức xác nhận là:

$this->form_validation->set_rules('customer_names[0]','Customer Names','required');
$this->form_validation->set_rules('customer_names[1]','Customer Names','required');
...

Các lỗi được hiển thị như thế này:

echo form_error('customer_names[0]');
echo form_error('customer_names[1]');
...

Các vấn đề liên quan