フォームの複数のフィールドに同じコールバック関数を設定しています:
foreach($fields as $class => $i)
{
++$i;
$validation->set_rules('car_' . $i . '_one', $class, 'trim|xss_clean|callback_validate_car_fields[TRUE]');
$validation->set_rules('car_' . $i . '_twor', $class, 'trim|xss_clean|callback_validate_car_fields[FALSE]');
$validation->set_rules('in_car_' . $i . '_one', $class, 'trim|xss_clean|callback_validate_car_fields[TRUE]');
$validation->set_rules('in_car_' . $i . '_two', $class, 'trim|xss_clean|callback_validate_car_fields[FALSE]');
}
( class
variale はCar
この場合です)
コールバック関数は次のとおりです。
function validate_car_fields($input, $required)
{
if ($required === "TRUE" && empty($input))
{
$this->form_validation->set_message('validate_car_fields', 'Field %s can not be empty!');
return FALSE;
}
return TRUE;
}
そして、それは二重のエラーを示しています:
* Field Car can not be empty!
* Field Car can not be empty!
* Field Car can not be empty!
* Field Car can not be empty!
この場合の動作は理解できますが、フィールドごとに 4 つではなく、フィールド名ごとに 1 つのエラーのみを表示したいと考えています。これはどのように行うことができますか?