Score:0

บันทึกการเลือกจากฟิลด์ ajaxified

ธง gb

ฉันอัปเดตฟิลด์จาก ajax สำเร็จแล้ว การประกาศมีดังต่อไปนี้:

$form['field_unite_de_recherche']['widget']['#ajax'] = อาร์เรย์(
  'callback' => 'ajax_equipes_from_unites_callback',
  'เหตุการณ์' => 'เปลี่ยนแปลง',
  'วิธีการ' => 'html',
  'wrapper' => 'edit-field-equipe-membre2-wrapper',
);

ฟิลด์ ajaxified นี้มีการประกาศดังต่อไปนี้:

$แบบฟอร์ม['field_equipe_membre2'] = [
  '#type' => 'เลือก',
  '#title' => 'Equipe(s) membre rattachée(s) à '.$
  '#options' => $ตัวเลือก,
];

คำถามของฉันคือ จะทราบและบันทึกค่าที่เลือกในฟิลด์ ajaxified นี้ได้อย่างไรโดยผู้ใช้

ฉันพยายามเพิ่มการประกาศ ajax อื่นในฟิลด์ ajaxified ดังต่อไปนี้:

$แบบฟอร์ม['field_equipe_membre2'] = [
  '#type' => 'เลือก',
  '#title' => 'Equipe(s) membre rattachée(s) à '.$
  '#options' => $ตัวเลือก,
  '#ajax' => อาร์เรย์(
    'callback' => 'ajax_save_choice_callback',
    'เหตุการณ์' => 'เปลี่ยนแปลง',
    'วิธีการ' => 'html',
    'wrapper' => 'edit-field-equipe-membre2-wrapper',
  )
];

แต่ฟังก์ชันการโทรกลับไม่ได้เริ่มทำงาน มีข้อ จำกัด ของฟังก์ชัน ajax ในแบบฟอร์มหรือไม่?

ฉันแดงหลายครั้งที่ฉันสามารถใช้ $form_sate เช่นต่อไปนี้ (จาก การโทร Ajax ด้วยการส่งจะสูญเสียข้อมูลในแบบฟอร์มที่ส่ง)

$value = $form_state->getValue('field_equipe_membre2');
$testArray = array('field_equipe_membre2' => $value);
$form_state->setStorage($testArray);

แต่โทรกลับไม่ติด

ฉันขอคำแนะนำได้ไหม

Jaypan avatar
de flag
โดยปกติแล้ว ปัญหาเหล่านี้จะเกิดขึ้นเมื่อคุณเพิ่มองค์ประกอบแบบฟอร์มในการเรียกกลับของ ajaxพวกเขาจะไม่ใช้ ajax กับพวกเขา คุณต้องเพิ่มองค์ประกอบฟอร์มในคำนิยามฟอร์ม
cocq avatar
gb flag
อาจเป็นเพราะฉันไม่ชัดเจนพอ "field_equipe_membre2" ในคำนิยามของฟอร์ม โดยไม่มีค่าตัวเลือกใดๆ และค่าเหล่านี้จะถูกเติมด้วยฟังก์ชัน "ajax_equipes_from_unites_callback" แต่ฉันไม่พบวิธีดึงค่าที่เลือกในฟิลด์ "field_equipe_membre2" เมื่อผู้ใช้คลิกที่ปุ่ม "ส่ง" ของแบบฟอร์ม th
in flag
ก่อนอื่น ฉันไม่คิดว่า `setStorage()` เป็นวิธีที่คุณต้องการ คุณน่าจะใช้ `setValue()` แทน คุณแสดงแบบฟอร์มนี้อย่างไร นอกจากนี้สำหรับ Drupal 7 ใช่ไหม คุณควรทำเครื่องหมายคำถามด้วยหมายเลขรุ่นของ Drupal
cocq avatar
gb flag
คุณพูดถูกเกี่ยวกับ "setValue" เป็นฟังก์ชั่นที่ดีกว่า "setStorage" (หนึ่งในการทดสอบมากมายของฉัน ... ) นี่สำหรับ Drupal 9

โพสต์คำตอบ

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