validasi sisi server khusus chronoforms v5

Saya telah mengembangkan chronoforms v5 (di situs Joomla 3.4.8) dan saya perlu menambahkan validasi sisi server khusus pada kolom teks input. Cukup saya perlu memeriksa apakah nama file input "codiceConvenzione" memiliki satu oh tiga nilai (misalnya: valueA, atau valueB, atau valueC).

Mengikuti tautan ini: http://www.chronoengine.com/faqs/54-cfv4/cfv4-validation/2592-how-do-i-use-custom-serverside-validation.html

Saya telah menambahkan elemen "kode khusus" berikut ke dalam tindakan ChronoForms onSubmit:

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

Sayangnya, seperti yang dilaporkan dalam tautan http://www.chronoengine.com/faqs/54-cfv4/cfv4-validation/2592-how-do-i-use-custom-serverside-validation.html, solusi ini tidak tidak valid untuk Chronoforms v5 (untuk ChronoForms v4).

Adakah yang membuat validasi PHP khusus di Chronoforms v5? Bisakah Anda menunjukkan kode PHP Anda dan di mana Anda meletakkannya?


person Aldo Poma    schedule 20.02.2016    source sumber
comment
Terima kasih banyak SK! Untuk menyelesaikan masalah saya sementara (karena saya harus segera menyelesaikannya) saya telah menggunakan Chronoforms V4, tetapi saya akan mencoba solusi Anda dengan ChronoForms V5.   -  person Aldo Poma    schedule 17.05.2016


Jawaban (1)


Anda mungkin sudah menemukan solusinya, tetapi saya menjawab Anda karena mungkin berguna bagi orang lain.

ChronoForms v5 tidak memiliki tindakan validasi Sisi Server Khusus, Anda dapat menggunakan tindakan Pengalih Peristiwa untuk menambahkan validasi sisi server khusus, namun tindakan tersebut tidak menawarkan metode yang sama untuk menampilkan kesalahan. Lihat di sini: https://www.chronoengine.com/faqs/70-cfv5/5212-event-switcher.html

Pada dasarnya untuk mengonversi validasi Anda, Anda perlu menambahkan Event Switcher dengan kode berikut:

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

Kemudian tambahkan Event Loop di event gagal Event Switcher. Seperti yang Anda lihat di Chronoforms V5, array kesalahan telah berganti nama di $form->errors['input_name']

person fasenderos    schedule 15.05.2016