2016-02-20 1 views
0

J'ai développé un chronoforms v5 (dans un site Joomla 3.4.8) et j'ai besoin d'ajouter une validation côté serveur personnalisée sur un champ de saisie. Simplement, je dois vérifier que le nom d'entrée "codiceConvenzione" a une oh trois valeurs (es: valeurA, ou valeurB, ou valeurC).chronoforms v5 validation côté serveur personnalisé

suivant ce lien: http://www.chronoengine.com/faqs/54-cfv4/cfv4-validation/2592-how-do-i-use-custom-serverside-validation.html

J'ai ajouté ce qui suit élément "code personnalisé" dans l'action onSubmit de ChronoForms:

<?php 
$ok_values = array(
    'valueA', 
    'valueB', 
    'valueC' 
); 
if (!in_array($form->data['codiceConvenzione'], $ok_values)) { 
    $form->validation_errors['codiceConvenzione'] = "The Convention code isn't valid"; 
    return false; 
} 
?> 

Malheureusement, comme indiqué dans le lien http://www.chronoengine.com/faqs/54-cfv4/cfv4-validation/2592-how-do-i-use-custom-serverside-validation.html, cette solution n » t valable pour Chronoforms v5 (est pour ChronoForms v4).

Est-ce que quelqu'un a créé une validation PHP personnalisée dans Chronoforms v5? Pourriez-vous s'il vous plaît me montrer votre code PHP et où vous l'avez mis?

+0

Merci beaucoup S K! Pour résoudre temporairement mon problème (parce que je devais le résoudre immédiatement), j'ai utilisé le Chronoforms V4, mais je vais essayer votre solution avec ChronoForms V5. –

Répondre

0

Vous avez probablement déjà trouvé une solution, mais je vous réponds parce que cela pourrait être utile à d'autres personnes. Aucune action de validation Serverside personnalisée n'est associée à ChronoForms v5. Vous pouvez utiliser une action Event Switcher pour ajouter une validation personnalisée au serveur, mais cela n'offre pas les mêmes méthodes pour afficher les erreurs. Voir ici: https://www.chronoengine.com/faqs/70-cfv5/5212-event-switcher.html

Fondamentalement pour convertir votre validation, vous devez ajouter un Switcher événement avec le code suivant:

<?php 
$ok_values = array(
    'valueA', 
    'valueB', 
    'valueC' 
); 
if(!in_array($form->data['codiceConvenzione'], $ok_values)){ 
    $form->errors['codiceConvenzione'] = "The Convention code isn't valid"; 
    return 'fail'; 
} else { 
    return 'success'; 
} 
?> 

ajouter ensuite une boucle d'événement dans l'éventualité d'un défaut de l'événement Switcher. Comme vous pouvez le voir dans Chronoforms V5 le tableau d'erreur a changé de nom en $form->errors['input_name']