Validazione Form Ajax, Chiarimenti

Salve, avrei bisogno di alcuni chiarimenti sulla validazione ajax in yii.

Ho un form abilitato sia alla validazione ajax sia alla validazione client.

  1. Correggetemi su quanto segue:

in base alle rules contenute nel model verrà generato del codice javascript, per validare ad esempio lunghezza del campo, o altri controlli di questo genere.

Invece per controlli che richiedono l’interazione con il database, verranno eseguite chiamate ajax.

Se disabilito la validazione client, ciò che dovrebbe essere validato via javascript verrà validato via ajax(ammesso che tale validazione sia abilitata).

Se disabilito anche la validazione ajax, i dati verranno inviati al server, validati e poi la pagina verrà ricaricata.

  1. Ammesso che quanto scritto sopra è corretto, ho bisogno di questo:

il form deve essere abilitato sia alla validazione ajax, sia alla validazione client(per limitare ove possibile il carico sul server).

Quando viene richiamata la validazione ajax e viene invocato il metodo performAjaxValidation avrei bisogno che venga eseguito un ulteriore metodo scritto a mano da me.

Tale metodo controlla tutti insieme 5 checkbox, ognuno rappresentante una colonna diversa sul database, la mia esigenza è che almeno uno sia checkato.

Vorrei che tale controllo venga effettuato durante la validazione ajax. Ho anche provato a scrivere un validatore custom nel model e applicarlo ai cinque attributi. Ma tale validatore prende in ingresso un solo attributo.

Come posso fare?

Grazie

La validazione client e’ un punto un po’ ostico, ti consiglio di lasciarlo per dopo.

Ti consiglio di procedere in questo modo:

Per prima cosa fai la validazione solo col submit. Per fare questo metti un validatore custom su uno qualsiasi dei campi e scrivi una funzione validate del tipo:


public function validate5campi()

{

   if (!$model->campo1 && ! $model->campo2 && ...)

       $this->addError('');

}

In questo modo la validazione dovrebbe funzionare al submit.

Una volta che funziona al submit, ti consiglierei di lasciar perdere la validazione ajax e passare ad altro, se sei ancora convinto ti spiego come andare avanti