Aquí está mi código del controlador para configurar las reglas:¿Lo estoy haciendo mal, o hay un error en la biblioteca de Validación de formularios de CodeIgniter al usar matrices como nombres de campos?
// 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');
El usuario puede introducir hasta 5 direcciones anteriores, como así:
el código detrás de la línea de dirección 1 campo parece esto:
<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>
aquí está el problema: Un Ssuming Tengo 5 direcciones ingresadas, y la validación falla en el formulario, las cinco áreas de entrada serán repobladas correctamente, como se esperaba. Sin embargo, la validación de CodeIgniter no funcionará en las entradas de matriz.
Aquí hay una captura de pantalla directamente después de la validación:
Como se puede ver, a pesar de que vuelve a llenar el formulario con los valores correctos, no se aplica las reglas de validación contra ellos y no parece reconocer su existencia desde dentro del controlador.
¿Qué puedo hacer?
Gracias!
Jack
Sí, eso es un error. Creo que se ha solucionado en 2.1 (desarrolle en GitHub) pero no me cite sobre eso. –
Gracias por aclarar Phil. Iré a ver los cambios en Git! – Jack
Lamento ser un dolor pero estoy luchando para encontrar cualquier solución para esto en cualquier parte de Github. ¿Me puede apuntar en la dirección correcta? – Jack