Điểm:0

Kiểm soát khả năng hiển thị của trường thả xuống bằng API #states cho danh sách thả xuống phụ thuộc

lá cờ cn

Tôi có các thiết lập sau đây.

dropdown_one

[
    '#type' => 'chọn',
    '#title' => $this->t('Dropdown one'),
    '#options' => $dropdownOneOptions,
    '#empty_option' => '---',
    '#cân nặng' => 1,
    '#ajax' => [
      'sự kiện' => 'thay đổi',
      'callback' => [$this, 'getDropdownTwoOptions'],
      'trình bao bọc' => 'thả xuống hai',
      'tiến độ' => [
        'gõ' => 'đập',
      ],
    ],
    '#name' => 'dropdown_one',
]

dropdown_two

[
    '#type' => 'chọn',
    '#title' => $this->t('Dropdown two'),
    '#options' => [],
    '#empty_option' => '---',
    '#cân nặng' => 2,
    '#ajax' => [
      'sự kiện' => 'thay đổi',
      'gọi lại' => [$this, 'getDropdownThreeOptions'],
      'trình bao bọc' => 'danh sách thả xuống ba',
      'tiến độ' => [
        'gõ' => 'đập',
      ],
    ],
    '#name' => 'dropdown_two',
    '#prefix' => sprintf('<div id="%s">', 'dropdown-two'),
    '#suffix' => '</div>',
    '#states' => [
      'vô hình' => [
        ':input[name="dropdown_one"]' => ['value' => ''],
      ],
    ],  
]

dropdown_ba

[
    '#type' => 'chọn',
    '#title' => $this->t('Ba danh sách thả xuống'),
    '#options' => [],
    '#empty_option' => '---',
    '#cân nặng' => 3,
    '#name' => 'dropdown_three',
    '#prefix' => sprintf('<div id="%s">', 'dropdown-ba'),
    '#suffix' => '</div>',
    '#states' => [
      'vô hình' => [
        ':input[name="dropdown_two"]' => ['value' => ''],
      ],
    ],  
]

Các tùy chọn trường chọn của danh sách thả xuống hai và danh sách thả xuống ba được cập nhật/đặt thông qua lệnh gọi lại AJAX tương ứng của chúng, với HtmlCommand().

$response = new AjaxResponse();
$wrapper_id = $triggeringElement['#ajax']['wrapper']; // 'dropdown-hai' hoặc 'dropdown-ba'
$response->addCommand(new HtmlCommand("#$wrapper_id select", $html)); // $html = "<option value='foo'>bar</option>...";

Tôi đang cố gắng tìm ra lý do tại sao trường hợp này không hoạt động:

Đưa ra trong danh sách thả xuống, một tùy chọn không trống được chọn
Và danh sách thả xuống hai được hiển thị
Và một tùy chọn không trống được chọn trong danh sách thả xuống hai
Và menu thả xuống ba được hiển thị
Khi tôi chọn tùy chọn trống trong danh sách thả xuống
Sau đó, danh sách thả xuống hai và danh sách thả xuống ba sẽ không được hiển thị

Thật không may, khi tôi chạy tập hợp hành động này, ba danh sách thả xuống vẫn hiển thị và tôi không thể hiểu tại sao.

Tôi thực sự sẽ đánh giá cao nếu ai đó có thể giúp đỡ.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.