การตรวจสอบฝั่งเซิร์ฟเวอร์แบบกำหนดเองของ chronoforms v5

ฉันได้พัฒนา 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)

มีใครสร้างการตรวจสอบ PHP แบบกำหนดเองใน Chronoforms v5 หรือไม่ คุณช่วยแสดงรหัส PHP ของคุณและแสดงตำแหน่งที่คุณวางไว้ได้ไหม?


person Aldo Poma    schedule 20.02.2016    source แหล่งที่มา
comment
ขอบคุณมากครับคุณ S K ! เพื่อแก้ไขปัญหาของฉันชั่วคราว (เพราะฉันต้องแก้ไขทันที) ฉันใช้ Chronoforms V4 แต่ฉันจะลองวิธีแก้ปัญหาของคุณด้วย ChronoForms V5   -  person Aldo Poma    schedule 17.05.2016


คำตอบ (1)


คุณอาจพบวิธีแก้ปัญหาแล้ว แต่ฉันตอบคุณเพราะมันอาจเป็นประโยชน์กับคนอื่น

ChronoForms v5 ไม่มีการดำเนินการตรวจสอบความถูกต้องฝั่งเซิร์ฟเวอร์แบบกำหนดเอง คุณสามารถใช้การกระทำตัวสลับเหตุการณ์เพื่อเพิ่มการตรวจสอบความถูกต้องฝั่งเซิร์ฟเวอร์แบบกำหนดเองได้ อย่างไรก็ตาม ไม่มีวิธีการเดียวกันในการแสดงข้อผิดพลาด ดูที่นี่: https://www.chronoengine.com/faqs/70-cfv5/5212-event-switcher.html

โดยพื้นฐานแล้วในการแปลงการตรวจสอบของคุณ คุณต้องเพิ่ม Event Switcher ด้วยโค้ดต่อไปนี้:

<?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 Loop ในเหตุการณ์ล้มเหลวของ Event Switcher ดังที่คุณเห็นใน Chronoforms V5 อาร์เรย์ข้อผิดพลาดเปลี่ยนชื่อใน $form->errors['input_name']

person fasenderos    schedule 15.05.2016