Score:0

วิธีเพิ่มค่าตัวเลือกที่กำหนดเองเพื่อเลือกฟิลด์ใน Webform และให้บันทึกพร้อมกับการส่ง

ธง ng

ฉันมีเว็บฟอร์ม Drupal 7 เมื่อฉันต้องการเติมข้อมูลตัวเลือกของฟิลด์ที่เลือกแบบไดนามิก ขณะนี้ฉันใช้ hook_form_alter() และตั้งค่าในลักษณะดังนี้:

<?php
 $form['submitted']['left']['select_field_name']['#options'] = $new_options;
</php>

สิ่งนี้ใช้ได้กับการแสดงตัวเลือกใหม่ในการสร้างเว็บฟอร์ม แต่ค่าจะไม่ถูกบันทึกด้วยฟอร์ม

ฉันรู้ว่ามี hook_webform_select_options_info() hook เพื่อสร้างตัวเลือกที่กำหนดไว้ล่วงหน้า แต่ไม่ได้ใช้พารามิเตอร์ใด ๆ ดังนั้นฉันจึงไม่มีทางส่งค่าจากเว็บฟอร์มเพื่อบอกวิธีการสร้างตัวเลือกแบบไดนามิก

มีวิธีใดบ้างที่จะสร้างรายการตัวเลือกการเลือกแบบไดนามิกและบันทึกค่าที่ไม่ได้อยู่ในรายการค่าที่เลือกของ Webform ดั้งเดิม

Alireza Tabatabaeian avatar
cn flag
หากไม่มีตัวเลือกใน $new_options ในการตั้งค่า select_field_name ตัวเลือกเหล่านั้นจะถูกละเว้นในขั้นตอนการตรวจสอบความถูกต้องของการส่งเว็บฟอร์ม ดังนั้นคุณต้องมีตัวเลือกทั้งหมดในการตั้งค่าองค์ประกอบของคุณ
quantumized avatar
ng flag
Alireza ฉันจะรับตัวเลือกในการตั้งค่าได้อย่างไรหากพวกมันถูกสร้างขึ้นแบบไดนามิกใน hook_form_alter() ?
Score:0
ธง ng

ฉันแก้ไขปัญหานี้โดยการเติมตัวเลือกที่เป็นไปได้ทั้งหมดผ่าน hook_webform_selection_options() จากนั้นรีเซ็ตตัวเลือกใน hook_form_alter() เพื่อลบตัวเลือกที่ฉันไม่ต้องการสำหรับอินสแตนซ์นั้น

Score:0
ธง cn

คุณยังสามารถใช้องค์ประกอบฟิลด์ข้อความแทนที่จะเป็นองค์ประกอบ Select จากนั้นใน hook_form_alter ให้เปลี่ยนประเภทองค์ประกอบเพื่อเลือกและใช้ตัวเลือกที่คุณต้องการกับสิ่งนั้น ในกรณีนี้ webform จะไม่สนใจค่าอินพุตเนื่องจากไม่มีข้อจำกัดสำหรับฟิลด์ข้อความ ( ถ้าไม่ได้ตั้งค่า regex หรือ ...)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา