ฉันมีการตั้งค่าต่อไปนี้
dropdown_one
[
'#type' => 'เลือก',
'#title' => $this->t('เมนูแบบเลื่อนลง'),
'#options' => $dropdownOneOptions,
'#empty_option' => '---',
'#น้ำหนัก' => 1,
'#อาแจ็กซ์' => [
'เหตุการณ์' => 'เปลี่ยนแปลง',
'callback' => [$this, 'getDropdownTwoOptions'],
'wrapper' => 'แบบเลื่อนลงสอง',
'ความคืบหน้า' => [
'type' => 'throbber',
]
]
'#name' => 'dropdown_one',
]
dropdown_two
[
'#type' => 'เลือก',
'#title' => $this->t('ดร็อปดาวน์ 2'),
'#ตัวเลือก' => [],
'#empty_option' => '---',
'#น้ำหนัก' => 2,
'#อาแจ็กซ์' => [
'เหตุการณ์' => 'เปลี่ยนแปลง',
'callback' => [$this, 'getDropdownThreeOptions'],
'wrapper' => 'ดร็อปดาวน์สาม',
'ความคืบหน้า' => [
'type' => 'throbber',
]
]
'#name' => 'dropdown_two',
'#prefix' => sprintf('<div id="%s">', 'แบบเลื่อนลงสอง'),
'#suffix' => '</div>',
'#รัฐ' => [
'ล่องหน' => [
':input[name="dropdown_one"]' => ['value' => ''],
]
]
]
dropdown_สาม
[
'#type' => 'เลือก',
'#title' => $this->t('รายการแบบหล่นลงสามรายการ'),
'#ตัวเลือก' => [],
'#empty_option' => '---',
'#น้ำหนัก' => 3,
'#name' => 'dropdown_three',
'#prefix' => sprintf('<div id="%s">', 'ดรอปดาวน์-สาม'),
'#suffix' => '</div>',
'#รัฐ' => [
'ล่องหน' => [
':input[name="dropdown_two"]' => ['value' => ''],
]
]
]
ตัวเลือกฟิลด์ที่เลือกของดร็อปดาวน์ 2 และดรอปดาวน์ 3 จะได้รับการอัปเดต/ตั้งค่าผ่านการโทรกลับ AJAX ที่เกี่ยวข้องด้วย คำสั่ง HTML()
.
$response = ใหม่ AjaxResponse();
$wrapper_id = $triggeringElement['#ajax']['wrapper']; // 'แบบเลื่อนลงสอง' หรือ 'แบบเลื่อนลงสาม'
$response->addCommand(new HtmlCommand("#$wrapper_id select", $html)); // $html = "<option value='foo'>แถบ</option>...";
ฉันกำลังพยายามหาสาเหตุที่กรณีนี้ใช้ไม่ได้:
ให้เลือกตัวเลือกที่ไม่ว่างเปล่าในเมนูแบบเลื่อนลง
และรายการดรอปดาวน์สองจะปรากฏขึ้น
และตัวเลือกที่ไม่ว่างเปล่าถูกเลือกในเมนูแบบเลื่อนลงที่สอง
และรายการแบบเลื่อนลงสามจะปรากฏขึ้น
เมื่อฉันเลือกตัวเลือกว่างในตัวเลือกแบบเลื่อนลง
จากนั้นไม่ควรแสดงดรอปดาวน์สองและดรอปดาวน์สาม
น่าเสียดายที่เมื่อฉันเรียกใช้ชุดการดำเนินการนี้ เมนูแบบเลื่อนลงสามยังคงมองเห็นได้ และฉันไม่สามารถเข้าใจได้ว่าเพราะเหตุใด
ฉันจะขอบคุณมากถ้ามีคนสามารถช่วยได้