chronoforms v5自定义服务器端验证

时间:2016-02-20 22:29:24

标签: php joomla chronoforms

我已经开发了一个chronoforms v5(在Joomla 3.4.8站点中),我需要在输入文本字段上添加自定义服务器端验证。我只需要检查输入字段名称" codiceConvenzione"有一个三个值(es:valueA,或valueB,或valueC)。

点击此链接: http://www.chronoengine.com/faqs/54-cfv4/cfv4-validation/2592-how-do-i-use-custom-serverside-validation.html

我已添加以下"自定义代码"元素进入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代码以及你把它放在哪里吗?

1 个答案:

答案 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']

中更改了名称