0

我开发了一个 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代码和你把它放在哪里吗?

4

1 回答 1

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 的失败事件中添加一个 Event Loop。正如您在 Chronoforms V5 中看到的,错误数组已更改名称$form->errors['input_name']

于 2016-05-15T16:17:47.820 回答