Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php chronoforms v5自定义服务器端验证_Php_Joomla_Chronoforms - Fatal编程技术网

Php chronoforms v5自定义服务器端验证

Php chronoforms v5自定义服务器端验证,php,joomla,chronoforms,Php,Joomla,Chronoforms,我已经开发了chronoforms v5(在Joomla 3.4.8站点中),需要在输入文本字段上添加自定义服务器端验证。只需检查输入文件名“codiceConventionOne”是否有一个或三个值(es:valueA、valueB或valueC) 点击此链接: 我已将以下“自定义代码”元素添加到onSubmit ChronoForms操作中: <?php $ok_values = array( 'valueA', 'valueB', 'valueC' ); if ( !

我已经开发了chronoforms v5(在Joomla 3.4.8站点中),需要在输入文本字段上添加自定义服务器端验证。只需检查输入文件名“
codiceConventionOne
”是否有一个或三个值(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;
}
?>

您可能已经找到了解决方案,但我回答您是因为它可能对其他人有用

ChronoForms v5没有自定义服务器端验证操作,您可以使用事件切换器操作添加自定义服务器端验证,但是它不提供相同的方法来显示错误。请看这里:

基本上,要转换验证,您需要添加一个带有以下代码的事件切换器:

<?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';
}
?>


然后在事件切换器的失败事件中添加事件循环。正如您在Chronoforms V5中看到的,错误数组在
$form->errors['input_name']

中更改了名称,非常感谢您的支持!为了暂时解决我的问题(因为我必须立即解决它),我使用了Chronoforms V4,但我将使用Chronoforms V5尝试您的解决方案。