我已经开发了一个chronoforms v5(在Joomla 3.4.8站点中),我需要在输入文本字段上添加自定义服务器端验证。我只需要检查输入字段名称" codiceConvenzione
"有一个三个值(es:valueA,或valueB,或valueC)。
我已添加以下"自定义代码"元素进入onSubmit 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;
}
?>
不幸的是,如链接http://www.chronoengine.com/faqs/54-cfv4/cfv4-validation/2592-how-do-i-use-custom-serverside-validation.html中所述,此解决方案对于Chronoforms v5(适用于ChronoForms v4)无效。
有人在Chronoforms v5中创建了自定义PHP验证吗?你能告诉我你的PHP代码以及你把它放在哪里吗?
答案 0 :(得分:0)
您可能已经找到了解决方案,但我回答您,因为它可能对其他人有用。
ChronoForms v5没有自定义服务器端验证操作,您可以使用事件切换器操作添加自定义服务器端验证,但是这不提供显示错误的相同方法。见这里:https://www.chronoengine.com/faqs/70-cfv5/5212-event-switcher.html
基本上要转换验证,您需要使用以下代码添加事件切换器:
<?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';
}
?>
然后在Event Switcher的fail事件中添加一个Event Loop。正如您在Chronoforms V5中看到的那样,错误数组在$form->errors['input_name']