Tôi đang cố gắng tạo biểu mẫu web (Webform 8.x, Drupal 8) yêu cầu khả năng người dùng gửi biểu mẫu nhiều lần.
Để đơn giản hóa quy trình cho người dùng, tôi muốn thiết lập một số trường biểu mẫu để:
- để trống trong lần truy cập đầu tiên vào biểu mẫu
- đối với các lần hiển thị tiếp theo của biểu mẫu, một số trường biểu mẫu phải được điền sẵn các nội dung gửi từ lần gửi trước đó
Có cách nào để đạt được điều này bằng cách sử dụng mã thông báo không?
Tôi đang cố gắng sử dụng mã thông báo để thực hiện việc này (chi tiết bên dưới) nhưng nhiều cách tiếp cận khác nhau không hoạt động.
Tất cả các ví dụ dưới đây đề cập đến họ
trường, nằm trong thông tin cá nhân
bộ trường.
Tôi đã thêm các mã thông báo sau vào trường giá trị mặc định
lĩnh vực không may mắn:
- Trang hỗ trợ này về mã thông báo biểu mẫu web (dành cho biểu mẫu web 7.x): https://www.drupal.org/comment/reply/2790291 ... khuyên rằng tôi truy cập giá trị bằng cách sử dụng:
[gửi:giá trị:thông tin cá nhân:first_name]
...nhưng nó không hoạt động khi tôi thêm nó vào trường 'Giá trị mặc định'. Thay vào đó, tôi nhận được thông báo lỗi từ Drupal rằng:
Giá trị mặc định đang sử dụng các mã thông báo không hợp lệ sau: [submission:values:personal_information:first_name].
+++
Nếu tôi làm theo hướng dẫn về mã thông báo trên biểu mẫu trong Webform 8.x, có vẻ như tôi nên sử dụng cấu trúc này cho mã thông báo của mình:
[webform_submission:webform:element:first_name]
... kết quả là nhãn của trường ('Tên') được điền sẵn trong trường.
Nếu tôi thêm hậu tố :clear, kết quả vẫn như vậy, nhãn của trường vẫn được điền sẵn trong trường.
Đây dường như là lựa chọn thành công nhất cho đến nay.
+++
Nếu tôi thêm :value vào mã thông báo:
[webform_submission:webform:element:first_name:value]
... kết quả là văn bản của mã thông báo được điền sẵn trong trường.
Nếu tôi thêm hậu tố :clear:
[webform_submission:webform:element:first_name:value:clear]
...trường trống trong lần gửi đầu tiên và tiếp theo.
+++
Nếu tôi sử dụng cái này, đây có vẻ là hướng dẫn trong phần mã thông báo về 'Mã thông báo biểu mẫu web từ dữ liệu đã gửi':
[webform_submission:values:first_name]
... nó hiển thị văn bản của mã thông báo.
Nếu tôi thêm hậu tố :clear:
[webform_submission:values:first_name:clear]
...trường trống trong lần gửi đầu tiên và tiếp theo.
Nếu tôi bao gồm giá trị bộ trường:
[webform_submission:values:personal_information:first_name]
...trang web trả về thông báo lỗi: "LogicException: "[webform_submission:values:personal_information:first_name]" đang được gọi đệ quy..." Và lỗi yaml tiếp theo sau khi thay đổi. Cách duy nhất tôi có thể giải quyết vấn đề này (ngay cả sau khi chỉnh sửa yaml của biểu mẫu qua CMS hoặc tệp cấu hình) là xóa trường biểu mẫu rồi tạo lại.
+++
Nếu tôi cố gắng này:
[webform_submission:values:first_name:raw]
... nó hiển thị văn bản của mã thông báo.
Nếu tôi thêm hậu tố :clear, trường này sẽ trống trong lần gửi đầu tiên và tiếp theo.