Điểm:0

Tạo tùy chọn liên kết trong biểu mẫu và sửa đổi url của nó trong biểu mẫu thay đổi hook

lá cờ us

Tôi đang tìm cách sửa đổi biểu mẫu thêm nút, cho đến nay tôi đã thêm "liên kết" trường cá nhân để hiển thị dưới dạng nút để thêm loại nút khác nếu người dùng muốn, liên kết đó có mã này trong hook_form_alter, tôi đang bắt một giá trị từ một lựa chọn khác trước đó và chuyển giá trị đó cho tuyến đường của tôi ::

    $selected_advertiser = isset($form_state->getUserInput()['field_advertiser'])? $form_state->getUserInput()['field_advertiser'] : "0";
    $url = Url::fromRoute('product.product_form', ['advertiser' => $sselected_advertiser]);
    $form['product_modal'] = [
        '#type' => 'liên kết',
        '#name' => 'product_modal',
        '#title' => t('Sản phẩm mới'),
        '#url' => $url,
        '#thuộc tính' => [
            'lớp học' => [
                'sử dụng-ajax',
                'cái nút',
            ],
            'data-dialog-type' => 'modal',
            'data-dialog-options' => '{"width":800, "height": 500}',
            'vô hiệu hóa lấy nét lại' => đúng,
            'style'=>'display: inline-block',
        ],
        "#cân nặng" => 5,
    ];

định tuyến.yml

  sản phẩm.product_form:
  đường dẫn: /product/product_form/{advertiser}
  mặc định:
    _controller: '\Drupal\my_module\Controller\mycontrollerController::openModalProduct'
    _title: 'Popup cho form sản phẩm'
  yêu cầu:
    _permission: 'quản lý cấu hình trang web'

vì vậy, lần đầu tiên nó chạy, nó đặt $selected_advertiser thành "0" nhưng lần sau nó đặt đúng cho bất kỳ id nào tôi đã chọn từ tùy chọn chọn trước đó, nhưng tuyến đường tới nút vẫn khớp với giá trị mặc định là "0", trình gỡ lỗi của tôi đang hiển thị đúng tuyến đường mới với id mới chính xác nhưng nút biểu mẫu thì không, tôi đoán điều này có liên quan gì đó đến những thay đổi không xác định trong biểu mẫu hoặc đại loại như thế?

Hodba Khalaf avatar
lá cờ eg
Tại sao không tạo một trường select_advertiser mới và ẩn, sau đó sử dụng giá trị của trường để sửa đổi $URL?
Ernesto Alfredo avatar
lá cờ us
@HodbaKhalaf tôi nghĩ tôi hiểu ý tưởng, tôi nghĩ có vẻ ổn, để tôi thử

Đă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.