2011-12-08 6 views
5

Dispone di una serie di clienti ciascuno con dettagli individuali. Ecco un esempio molto SEMPLICE.Codeigniter - Visualizzazione di un singolo messaggio di errore per i campi dell'array

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

In CodeIgniter, ogni customer_name è richiesto
$this->form_validation->set_rules('customer_names[]','Customer Names','required');

Se uno qualsiasi dei nomi dei clienti sono vuote, validation_errors(); mostra un messaggio per l'intero array.

Come posso ottenere singoli messaggi di errore per quel cliente?

NOTA: echo form_error('customer_names[0]'); è quello che sto cercando di ottenere in cui customer_name 0 è stato lasciato vuoto.

+0

Secondo la documentazione, che il lavoro Shoul: http://codeigniter.com/user_guide/libraries/form_validation.html#arraysasfields Cosa vede? – swatkins

risposta

1

Guardando la documentazione Form Validation, in particolare la sezione Using Arrays as Field Names, penso che si sta andando ad avere bisogno di un nome in modo esplicito gli ingressi includendo l'indice nel nome per ottenere il metodo form_error() a lavorare come volete.

Quindi, per fare in modo che form_error('customer_names[0]') funzioni, è necessario immettere un nome con il nome customer_names[0].

+0

Questo ha funzionato bene per me, anche se devo nominare esplicitamente i miei campi con le rispettive chiavi per essere utile. Questo [answer here] (http://stackoverflow.com/a/32304264/4065407) dice che CodeIgniter 3 ha una funzione per questo. –

+0

La risposta di @machineaddict è la stessa, ma non ho bisogno di specificare l'indice nel nome della regola. –

0

Avevo lo stesso problema con CodeIgniter 2.1.3. Ho risolto in questo modo:

L'ingresso è:

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

La validazione dei form è:

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

Gli errori vengono visualizzati in questo modo:

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

Problemi correlati