0

クロノフォーム v5 (Joomla 3.4.8 サイト) を開発しましたが、入力テキスト フィールドにカスタムのサーバー側検証を追加する必要があります。単純に、入力フィールド名 " codiceConvenzione" に 1 つまたは 3 つの値 (つまり、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で報告されているように、このソリューションは有効ではありませんクロノフォーム v5 用 (クロノフォーム 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';
}
?>

次に、イベント スイッチャーの失敗イベントにイベント ループを追加します。Chronoforms V5 でわかるように、エラー配列の名前が変更されました$form->errors['input_name']

于 2016-05-15T16:17:47.820 に答える