Điểm:2

Sự cố với cùng một biểu mẫu web được thêm nhiều lần trong một trang

lá cờ th

Vấn đề

Tôi có nút Bài viết với trình tạo bố cục được bật cho tác giả nội dung.

tôi có biểu mẫu web Theo dõi bản tin đã bật ajax.

Tôi thêm biểu mẫu web Đăng ký bản tin vào nút hai lần. Vì vậy, có 2 biểu mẫu web giống nhau được thêm vào nút.

Khi tôi gửi biểu mẫu thứ hai, thông báo xác nhận sẽ xuất hiện trong biểu mẫu web đầu tiên.

Hy vọng

Thông báo xác nhận sẽ xuất hiện trong biểu mẫu web thứ hai.

Những gì tôi đã cố gắng

Tôi đã cố gắng thay đổi id bằng cách sử dụng

function MY_MODULE_form_alter(&$form, FormStateInterface $form_state, $form_id) {
    if (isset($form['#webform_id'])) {
      $count = _MY_MODULE_generate_webform_unique_id($form['#webform_id']);

      nếu ($bộ đếm !== 0) {
        $new_id = $form_id . '_' . bộ đếm $;
        $form['#form_id'] = $new_id;
        $form['#attributes']['id'] = $new_id;
        $form['#form_wrapper_id'] = $form['#form_wrapper_id'] . '--' . bộ đếm $;

        $content_wrapper = $form['#form_wrapper_id'] . '-Nội dung--' . bộ đếm $;
        $wrapper_id = $form['#form_wrapper_id'] . '--' . bộ đếm $;
        $prefix = '<span id="'. $content_wrapper .'"></span>' .
          '<div id="' . $wrapper_id . '" class="webform-ajax-form-wrapper" data-effect="fade" data-progress-type="throbber">';
        $form['#prefix'] = $prefix;
      }
    }
}


hàm _MY_MODULE_generate_webform_unique_id($webform_id) {
  $static_var = &drupal_static(__FUNCTION__ . ':' . $webform_id);
  if (!isset($static_var)) {
    // tạo nội dung của biến tĩnh
    $static_var = 0;
  }
  khác {
    $static_var += 1;
  }

  trả về $static_var;
}

Tôi có thể thay đổi ID biểu mẫu nhưng thông báo xác nhận vẫn hiển thị trong biểu mẫu web đầu tiên.

Tôi thấy tương tự ở đây https://drupal.stackexchange.com/a/272176/26797 nhưng đây là cho hình thức tùy chỉnh. Không chắc chắn làm thế nào để áp dụng nó với biểu mẫu web.

Có một số sai lầm mà tôi đã thực hiện hoặc cách tiếp cận khác?

Cảm ơn trước.

Chỉnh sửa

Để giải quyết nhanh chóng, tôi hiện đang thay đổi tất cả biểu mẫu để hiển thị trong hộp thoại phương thức Drupal. Vì vậy, thay vì biểu mẫu xuất hiện trong trang, tôi đặt một liên kết và người dùng nhấp vào liên kết để mở biểu mẫu. Không chắc đây là lỗi trong biểu mẫu web hay mã tùy chỉnh của tôi đang làm rối tung mọi thứ. Tôi sẽ cần thử điều này trong vanilla Drupal sau này.

sonfd avatar
lá cờ in
Tôi đang bỏ phiếu để đóng câu hỏi này vì nó sẽ được giải quyết trong [hàng đợi vấn đề của mô-đun webform](https://www.drupal.org/project/issues/webform?categories=All) trên drupal.org.
sonfd avatar
lá cờ in
Một giải pháp thay thế có thể là định cấu hình lại biểu mẫu web để có cơ hội hiển thị thông báo xác nhận.

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