Làm thế nào dữ liệu biểu mẫu có thể được sử dụng trong HTML?

Biểu mẫu HTML là một phần của tài liệu chứa nội dung thông thường, đánh dấu, các phần tử đặc biệt được gọi là [hộp kiểm, nút radio, menu, v.v. ] và nhãn trên các điều khiển đó. Người dùng thường "hoàn thành" một biểu mẫu bằng cách sửa đổi các điều khiển của nó [nhập văn bản, chọn các mục menu, v.v. ], trước khi gửi biểu mẫu cho đại lý để xử lý [e. g. , tới máy chủ Web, tới máy chủ thư, v.v. ]

Đây là một biểu mẫu đơn giản bao gồm nhãn, nút radio và nút ấn [đặt lại biểu mẫu hoặc gửi biểu mẫu]

 
    

First name:
Last name:
email:
Male
Female

Ghi chú. Thông số kỹ thuật này bao gồm thông tin chi tiết hơn về các biểu mẫu trong các tiểu mục trên

Người dùng tương tác với các biểu mẫu thông qua các điều khiển được đặt tên

"Tên điều khiển" của điều khiển được cung cấp bởi thuộc tính tên của nó. Phạm vi của thuộc tính tên cho một điều khiển trong một phần tử là phần tử

Mỗi điều khiển có cả giá trị ban đầu và giá trị hiện tại, cả hai đều là chuỗi ký tự. Vui lòng tham khảo định nghĩa của từng điều khiển để biết thông tin về các giá trị ban đầu và các ràng buộc có thể có đối với các giá trị do điều khiển áp đặt. Nói chung, "giá trị ban đầu" của điều khiển có thể được chỉ định bằng thuộc tính giá trị của phần tử điều khiển. Tuy nhiên, giá trị ban đầu của một phần tử được cung cấp bởi nội dung của nó và giá trị ban đầu của một phần tử trong biểu mẫu được xác định bởi việc triển khai đối tượng [i. e. , nó nằm ngoài phạm vi của thông số kỹ thuật này]

"Giá trị hiện tại" của điều khiển trước tiên được đặt thành giá trị ban đầu. Sau đó, giá trị hiện tại của điều khiển có thể được sửa đổi thông qua tương tác của người dùng và tập lệnh

Giá trị ban đầu của điều khiển không thay đổi. Do đó, khi một biểu mẫu được đặt lại, giá trị hiện tại của mỗi điều khiển được đặt lại về giá trị ban đầu. Nếu một điều khiển không có giá trị ban đầu, ảnh hưởng của việc đặt lại biểu mẫu đối với điều khiển đó là không xác định

Khi một biểu mẫu được gửi để xử lý, một số điều khiển có tên được ghép nối với giá trị hiện tại của chúng và các cặp này có biểu mẫu. Những điều khiển mà các cặp tên/giá trị được gửi được gọi là

HTML định nghĩa các loại điều khiển sau

nút Tác giả có thể tạo ba loại nút

Tác giả tạo các nút với phần tử hoặc phần tử. Vui lòng tham khảo định nghĩa của các phần tử này để biết chi tiết về cách chỉ định các loại nút khác nhau

Ghi chú. Tác giả nên lưu ý rằng phần tử cung cấp khả năng hiển thị phong phú hơn phần tử

hộp kiểmHộp kiểm [và nút radio] là công tắc bật/tắt mà người dùng có thể bật/tắt. Công tắc được "bật" khi thuộc tính của phần tử điều khiển được đặt. Khi một biểu mẫu được gửi, chỉ các điều khiển hộp kiểm "bật" mới có thể trở thành

Một số hộp kiểm trong một biểu mẫu có thể giống nhau. Vì vậy, ví dụ: các hộp kiểm cho phép người dùng chọn một số giá trị cho cùng một thuộc tính. Phần tử được sử dụng để tạo điều khiển hộp kiểm

nút radio Các nút radio giống như các hộp kiểm ngoại trừ khi một số chia sẻ giống nhau, chúng loại trừ lẫn nhau. khi một cái được bật "on", tất cả những cái khác có cùng tên sẽ bị "tắt". Phần tử được sử dụng để tạo điều khiển nút radio. Nếu không có nút radio nào trong một nhóm có cùng tên điều khiển được "bật" ban đầu, hành vi của tác nhân người dùng để chọn điều khiển nào ban đầu được "bật" là không xác định. Ghi chú. Do các triển khai hiện tại xử lý trường hợp này theo cách khác, nên thông số kỹ thuật hiện tại khác với RFC 1866 [ phần 8. 1. 2. 4], trong đó nêu rõ
Tại mọi thời điểm, chính xác một trong các nút radio trong bộ được chọn. Nếu không có thành phần nào của tập hợp các nút radio chỉ định `CHECKED', thì tác nhân người dùng phải kiểm tra nút radio đầu tiên của tập hợp đó ngay từ đầu

Do hành vi của tác nhân người dùng khác nhau, nên các tác giả phải đảm bảo rằng trong mỗi bộ nút radio, một nút ban đầu được "bật"

menuMenu cung cấp cho người dùng các tùy chọn để chọn. Phần tử tạo menu, kết hợp với phần tử và. nhập văn bản Tác giả có thể tạo hai loại điều khiển cho phép người dùng nhập văn bản. Phần tử tạo điều khiển đầu vào một dòng và phần tử tạo điều khiển đầu vào nhiều dòng. Trong cả hai trường hợp, văn bản đầu vào trở thành văn bản của điều khiển. chọn tệp Loại điều khiển này cho phép người dùng chọn tệp để nội dung của chúng có thể được gửi bằng biểu mẫu. Phần tử được sử dụng để tạo điều khiển chọn tệp. điều khiển ẩn Tác giả có thể tạo điều khiển không được hiển thị nhưng có giá trị được gửi cùng với biểu mẫu. Các tác giả thường sử dụng loại điều khiển này để lưu trữ thông tin giữa các trao đổi máy khách/máy chủ nếu không sẽ bị mất do tính chất không trạng thái của HTTP [xem phần ]. Phần tử được sử dụng để tạo điều khiển ẩn. điều khiển đối tượng Tác giả có thể chèn các đối tượng chung trong các biểu mẫu sao cho các giá trị liên quan được gửi cùng với các điều khiển khác. Tác giả tạo các điều khiển đối tượng với phần tử

Các phần tử được sử dụng để tạo các điều khiển thường xuất hiện bên trong một phần tử, nhưng cũng có thể xuất hiện bên ngoài phần khai báo phần tử khi chúng được sử dụng để xây dựng giao diện người dùng. Điều này được thảo luận trong phần Lưu ý rằng các điều khiển bên ngoài biểu mẫu không thể

thẻ bắt đầu. bắt buộc, Thẻ kết thúc. yêu cầu

Định nghĩa thuộc tính

hành động = Thuộc tính này chỉ định một tác nhân xử lý biểu mẫu. Hành vi tác nhân người dùng cho một giá trị không phải là URI HTTP không được xác định. phương pháp = nhận. post Thuộc tính này chỉ định phương thức HTTP nào sẽ được sử dụng để gửi. Các giá trị có thể [không phân biệt chữ hoa chữ thường] là "get" [mặc định] và "post". Xem phần trên để biết thông tin sử dụng. enctype = Thuộc tính này chỉ định sử dụng để gửi biểu mẫu tới máy chủ [khi giá trị của là "bài đăng"]. Giá trị mặc định cho thuộc tính này là "application/x-www-form-urlencoded". Giá trị "multipart/form-data" nên được sử dụng kết hợp với phần tử, type="file". accept-charset = Thuộc tính này chỉ định danh sách dữ liệu đầu vào được chấp nhận bởi máy chủ xử lý biểu mẫu này. Giá trị là danh sách các giá trị được phân tách bằng dấu cách và/hoặc dấu phẩy. Khách hàng phải diễn giải danh sách này dưới dạng danh sách độc quyền-hoặc danh sách, tôi. e. , máy chủ có thể chấp nhận bất kỳ mã hóa ký tự đơn nào cho mỗi thực thể nhận được

Giá trị mặc định cho thuộc tính này là chuỗi dành riêng "UNKNOWN". Tác nhân người dùng có thể diễn giải giá trị này dưới dạng mã hóa ký tự được sử dụng để truyền tài liệu chứa phần tử này

chấp nhận = Thuộc tính này chỉ định danh sách các loại nội dung được phân tách bằng dấu phẩy mà máy chủ xử lý biểu mẫu này sẽ xử lý chính xác. Tác nhân người dùng có thể sử dụng thông tin này để lọc ra các tệp không phù hợp khi nhắc người dùng chọn tệp để gửi đến máy chủ [cf. phần tử khi = "tệp"]. name = Thuộc tính này đặt tên cho phần tử để nó có thể được tham chiếu từ biểu định kiểu hoặc tập lệnh. Ghi chú. Thuộc tính này đã được đưa vào để tương thích ngược. Các ứng dụng nên sử dụng thuộc tính để xác định các phần tử

Các thuộc tính được xác định ở nơi khác

Phần tử hoạt động như một thùng chứa cho. Nó chỉ định

  • Bố cục của biểu mẫu [được đưa ra bởi nội dung của phần tử]
  • Chương trình sẽ xử lý biểu mẫu đã hoàn thành và đã gửi [thuộc tính]. Chương trình nhận phải có khả năng phân tích các cặp tên/giá trị để sử dụng chúng
  • Phương thức mà dữ liệu người dùng sẽ được gửi đến máy chủ [thuộc tính]
  • Mã hóa ký tự phải được máy chủ chấp nhận để xử lý biểu mẫu này [thuộc tính]. Tác nhân người dùng có thể tư vấn cho người dùng về giá trị của thuộc tính và/hoặc hạn chế khả năng nhập các ký tự không được nhận dạng của người dùng

Một biểu mẫu có thể chứa văn bản và đánh dấu [đoạn văn, danh sách, v.v. ] ngoài ra

Ví dụ sau đây cho thấy một biểu mẫu sẽ được xử lý bởi chương trình "adduser" khi được gửi. Biểu mẫu sẽ được gửi đến chương trình bằng phương thức "đăng" HTTP

 
 ...form contents...
 

Vui lòng tham khảo phần trên để biết thông tin về cách tác nhân người dùng phải chuẩn bị dữ liệu biểu mẫu cho máy chủ và cách tác nhân người dùng nên xử lý các phản hồi dự kiến

Ghi chú. Thảo luận thêm về hành vi của các máy chủ nhận dữ liệu biểu mẫu nằm ngoài phạm vi của thông số kỹ thuật này



INPUT - O EMPTY              -- form control -->
%attrs;                              -- %coreattrs, %i18n, %events --
  type        %InputType;    TEXT      -- what kind of widget is needed --
  name        CDATA          #IMPLIED  -- submit as part of form --
  value       CDATA          #IMPLIED  -- Specify for radio buttons and checkboxes --
  checked     [checked]      #IMPLIED  -- for radio buttons and check boxes --
  disabled    [disabled]     #IMPLIED  -- unavailable in this context --
  readonly    [readonly]     #IMPLIED  -- for text and passwd --
  size        CDATA          #IMPLIED  -- specific to each type of field --
  maxlength   NUMBER         #IMPLIED  -- max chars for text fields --
  src         %URI;          #IMPLIED  -- for fields with images --
  alt         CDATA          #IMPLIED  -- short description --
  usemap      %URI;          #IMPLIED  -- use client-side image map --
  ismap       [ismap]        #IMPLIED  -- use server-side image map --
  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
  accesskey   %Character;    #IMPLIED  -- accessibility key character --
  onfocus     %Script;       #IMPLIED  -- the element got the focus --
  onblur      %Script;       #IMPLIED  -- the element lost the focus --
  onselect    %Script;       #IMPLIED  -- some text was selected --
  onchange    %Script;       #IMPLIED  -- the element value was changed --
  accept      %ContentTypes; #IMPLIED  -- list of MIME types for file upload --
  >

thẻ bắt đầu. bắt buộc, Thẻ kết thúc. cấm

Định nghĩa thuộc tính

gõ = văn bản. mật khẩu mở khóa. hộp kiểm. Đài. Gửi đi. cài lại. tập tin. ẩn giấu. hình ảnh. nút Thuộc tính này chỉ định để tạo. Giá trị mặc định cho thuộc tính này là "văn bản". tên = Thuộc tính này chỉ định. giá trị = Thuộc tính này chỉ định điều khiển. Nó là tùy chọn trừ khi thuộc tính có giá trị "radio" hoặc "checkbox". size = Thuộc tính này cho tác nhân người dùng biết chiều rộng ban đầu của điều khiển. Chiều rộng được đưa ra trừ khi thuộc tính có giá trị "văn bản" hoặc "mật khẩu". Trong trường hợp đó, giá trị của nó đề cập đến số ký tự [số nguyên]. maxlength = Khi thuộc tính có giá trị "văn bản" hoặc "mật khẩu", thuộc tính này chỉ định số lượng ký tự tối đa mà người dùng có thể nhập. Con số này có thể vượt quá chỉ định, trong trường hợp đó, tác nhân người dùng nên cung cấp cơ chế cuộn. Giá trị mặc định cho thuộc tính này là số lượng không giới hạn. đã chọn Khi thuộc tính có giá trị "radio" hoặc "hộp kiểm", thuộc tính boolean này chỉ định rằng nút đang bật. Tác nhân người dùng phải bỏ qua thuộc tính này cho các loại điều khiển khác. src = Khi thuộc tính có giá trị "hình ảnh", thuộc tính này chỉ định vị trí của hình ảnh được sử dụng để trang trí nút gửi đồ họa

Các thuộc tính được xác định ở nơi khác

Được xác định bởi phần tử phụ thuộc vào giá trị của thuộc tính

textTạo điều khiển một dòng. mật khẩuGiống như "văn bản", nhưng văn bản đầu vào được hiển thị theo cách ẩn các ký tự [e. g. , một dãy dấu hoa thị]. Loại điều khiển này thường được sử dụng cho đầu vào nhạy cảm như mật khẩu. Lưu ý rằng đây là văn bản do người dùng nhập, không phải văn bản do tác nhân người dùng hiển thị

Ghi chú. Các nhà thiết kế ứng dụng nên lưu ý rằng cơ chế này chỉ cung cấp khả năng bảo vệ an ninh nhẹ. Mặc dù mật khẩu được che dấu bởi các tác nhân người dùng từ những người quan sát bình thường, nhưng nó được truyền đến máy chủ ở dạng văn bản rõ ràng và bất kỳ ai có quyền truy cập mạng ở mức độ thấp đều có thể đọc được

hộp kiểmTạo radioTạo một lần gửiTạo một hình ảnhTạo một đồ họa Giá trị của thuộc tính chỉ định URI của hình ảnh sẽ trang trí cho nút. Vì lý do tiếp cận, tác giả nên cung cấp hình ảnh thông qua thuộc tính

Khi một thiết bị trỏ được sử dụng để nhấp vào hình ảnh, biểu mẫu sẽ được gửi và tọa độ nhấp được chuyển đến máy chủ. Giá trị x được đo từ bên trái của hình ảnh và giá trị y được đo từ trên cùng của hình ảnh. Dữ liệu đã gửi bao gồm tên. x=x-giá trị và tên. y=y-value trong đó "tên" là giá trị của thuộc tính tên và giá trị x và giá trị y lần lượt là các giá trị tọa độ x và y

Nếu máy chủ thực hiện các hành động khác nhau tùy thuộc vào vị trí được nhấp, người dùng trình duyệt phi đồ họa sẽ gặp bất lợi. Vì lý do này, các tác giả nên xem xét các phương pháp thay thế

  • Sử dụng nhiều nút gửi [mỗi nút có hình ảnh riêng] thay cho một nút gửi đồ họa. Tác giả có thể sử dụng biểu định kiểu để kiểm soát vị trí của các nút này
  • Sử dụng a cùng với tập lệnh
đặt lạiTạo một nútTạo một Tác nhân người dùng nên sử dụng giá trị của thuộc tính giá trị làm nhãn của nút. hiddenTạo tệpTạo điều khiển. Tác nhân người dùng có thể sử dụng giá trị của thuộc tính làm tên tệp ban đầu

17. 4. 2 Ví dụ về các biểu mẫu chứa các điều khiển INPUT

Đoạn HTML mẫu sau xác định một biểu mẫu đơn giản cho phép người dùng nhập tên, họ, địa chỉ email và giới tính. Khi nút gửi được kích hoạt, biểu mẫu sẽ được gửi đến chương trình được chỉ định bởi thuộc tính

 
    

First name:
Last name:
email:
Male
Female

Biểu mẫu này có thể được hiển thị như sau

%coreattrs, %i18n, %events -- type %InputType; TEXT -- what kind of widget is needed -- name CDATA #IMPLIED -- submit as part of form -- value CDATA #IMPLIED -- Specify for radio buttons and checkboxes -- checked [checked] #IMPLIED -- for radio buttons and check boxes -- disabled [disabled] #IMPLIED -- unavailable in this context -- readonly [readonly] #IMPLIED -- for text and passwd -- size CDATA #IMPLIED -- specific to each type of field -- maxlength NUMBER #IMPLIED -- max chars for text fields -- src %URI; #IMPLIED -- for fields with images -- alt CDATA #IMPLIED -- short description -- usemap %URI; #IMPLIED -- use client-side image map -- ismap [ismap] #IMPLIED -- use server-side image map -- tabindex NUMBER #IMPLIED -- position in tabbing order -- accesskey %Character; #IMPLIED -- accessibility key character -- onfocus %Script; #IMPLIED -- the element got the focus -- onblur %Script; #IMPLIED -- the element lost the focus -- onselect %Script; #IMPLIED -- some text was selected -- onchange %Script; #IMPLIED -- the element value was changed -- accept %ContentTypes; #IMPLIED -- list of MIME types for file upload -- > 0

vẫn sẽ khiến một giá trị được ghép nối với tên "mật khẩu vô hình" và được gửi cùng với biểu mẫu

Khi người dùng gửi một biểu mẫu [e. g. , bằng cách kích hoạt a ], tác nhân người dùng xử lý nó như sau

Bước một. Xác định

Bước hai. Xây dựng tập dữ liệu biểu mẫu

Tập dữ liệu biểu mẫu là một chuỗi / cặp được tạo từ

Bước thứ ba. Mã hóa tập dữ liệu biểu mẫu

Tập dữ liệu biểu mẫu sau đó được mã hóa theo quy định bởi thuộc tính của phần tử

Bước bốn. Gửi bộ dữ liệu biểu mẫu được mã hóa

Cuối cùng, dữ liệu được mã hóa được gửi đến tác nhân xử lý được chỉ định bởi thuộc tính bằng cách sử dụng giao thức được chỉ định bởi thuộc tính

Thông số kỹ thuật này không chỉ định tất cả các phương thức gửi hợp lệ hoặc có thể được sử dụng với các biểu mẫu. Tuy nhiên, tác nhân người dùng HTML 4 phải hỗ trợ các quy ước đã thiết lập trong các trường hợp sau

  • Nếu là "get" và là một HTTP URI, thì tác nhân người dùng lấy giá trị của , nối thêm `?' . Sau đó, tác nhân người dùng duyệt qua liên kết đến URI này. Trong trường hợp này, dữ liệu biểu mẫu được giới hạn mã ASCII
  • Nếu là "bài đăng" và là một URI HTTP, thì tác nhân người dùng tiến hành giao dịch "bài đăng" HTTP bằng cách sử dụng giá trị của thuộc tính và một thông báo được tạo theo chỉ định của thuộc tính

Đối với bất kỳ giá trị nào khác của or , hành vi không được chỉ định

Tác nhân người dùng sẽ hiển thị phản hồi từ các giao dịch HTTP "get" và "post"

Thuộc tính của phần tử chỉ định được sử dụng để mã hóa để gửi đến máy chủ. Tác nhân người dùng phải hỗ trợ các loại nội dung được liệt kê bên dưới. Hành vi cho các loại nội dung khác là không xác định

Xin vui lòng cũng tham khảo phần trên

ứng dụng/x-www-form-urlencoded

Đây là loại nội dung mặc định. Các biểu mẫu được gửi với loại nội dung này phải được mã hóa như sau

  1. Tên và giá trị điều khiển được thoát. Các ký tự khoảng trắng được thay thế bằng `+', sau đó các ký tự dành riêng được thoát ra như được mô tả trong phần 2. 2. Các ký tự không phải chữ và số được thay thế bằng `%HH', một dấu phần trăm và hai chữ số thập lục phân biểu thị mã ASCII của ký tự. Ngắt dòng được biểu diễn dưới dạng cặp "CR LF" [i. e. , `%0D%0A']
  2. Tên/giá trị điều khiển được liệt kê theo thứ tự chúng xuất hiện trong tài liệu. Tên được phân tách khỏi giá trị bằng `=' và các cặp tên/giá trị được phân tách bằng `&'

nhiều phần/biểu mẫu dữ liệu

Ghi chú. Vui lòng tham khảo để biết thêm thông tin về tệp tải lên, bao gồm các vấn đề về khả năng tương thích ngược, mối quan hệ giữa "nhiều phần/biểu mẫu dữ liệu" và các loại nội dung khác, các vấn đề về hiệu suất, v.v.

Vui lòng tham khảo phụ lục để biết thông tin về

Loại nội dung "application/x-www-form-urlencoded" không hiệu quả để gửi số lượng lớn dữ liệu nhị phân hoặc văn bản chứa các ký tự không phải ASCII. Loại nội dung "multipart/form-data" nên được sử dụng để gửi biểu mẫu chứa tệp, dữ liệu không phải ASCII và dữ liệu nhị phân

Nội dung "multipart/form-data" tuân theo các quy tắc của tất cả các luồng dữ liệu MIME nhiều phần như được nêu trong. Định nghĩa "multipart/form-data" có tại cơ quan đăng ký

Thông báo "nhiều phần/biểu mẫu dữ liệu" chứa một loạt các phần, mỗi phần đại diện cho một. Các bộ phận được gửi đến tác nhân xử lý theo cùng thứ tự các điều khiển tương ứng xuất hiện trong luồng tài liệu. Ranh giới một phần không được xuất hiện trong bất kỳ dữ liệu nào;

Như với tất cả các loại MIME nhiều phần, mỗi phần có tiêu đề "Kiểu nội dung" tùy chọn mặc định là "văn bản/đơn giản". Tác nhân người dùng phải cung cấp tiêu đề "Loại nội dung", kèm theo tham số "bộ ký tự"

Mỗi phần dự kiến ​​​​sẽ chứa

  1. tiêu đề "Bố trí nội dung" có giá trị là "dữ liệu biểu mẫu"
  2. một thuộc tính tên chỉ định điều khiển tương ứng. Tên điều khiển ban đầu được mã hóa trong bộ ký tự không phải ASCII có thể được mã hóa bằng phương pháp được nêu trong

Do đó, ví dụ, đối với điều khiển có tên "mycontrol", phần tương ứng sẽ được chỉ định



INPUT - O EMPTY              -- form control -->
%attrs;                              -- %coreattrs, %i18n, %events --
  type        %InputType;    TEXT      -- what kind of widget is needed --
  name        CDATA          #IMPLIED  -- submit as part of form --
  value       CDATA          #IMPLIED  -- Specify for radio buttons and checkboxes --
  checked     [checked]      #IMPLIED  -- for radio buttons and check boxes --
  disabled    [disabled]     #IMPLIED  -- unavailable in this context --
  readonly    [readonly]     #IMPLIED  -- for text and passwd --
  size        CDATA          #IMPLIED  -- specific to each type of field --
  maxlength   NUMBER         #IMPLIED  -- max chars for text fields --
  src         %URI;          #IMPLIED  -- for fields with images --
  alt         CDATA          #IMPLIED  -- short description --
  usemap      %URI;          #IMPLIED  -- use client-side image map --
  ismap       [ismap]        #IMPLIED  -- use server-side image map --
  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
  accesskey   %Character;    #IMPLIED  -- accessibility key character --
  onfocus     %Script;       #IMPLIED  -- the element got the focus --
  onblur      %Script;       #IMPLIED  -- the element lost the focus --
  onselect    %Script;       #IMPLIED  -- some text was selected --
  onchange    %Script;       #IMPLIED  -- the element value was changed --
  accept      %ContentTypes; #IMPLIED  -- list of MIME types for file upload --
  >
1

Như với tất cả các lần truyền MIME, "CR LF" [i. e. , `%0D%0A'] được sử dụng để phân tách các dòng dữ liệu

Mỗi phần có thể được mã hóa và tiêu đề "Mã hóa truyền nội dung" được cung cấp nếu giá trị của phần đó không tuân theo mã hóa [7BIT] mặc định [xem phần 6]

Nếu nội dung của một tệp được gửi cùng với một biểu mẫu, tệp đầu vào phải được xác định bởi [e. g. , "application/octet-stream"]. Nếu nhiều tệp được trả về do kết quả của một mục nhập biểu mẫu, chúng sẽ được trả về dưới dạng "nhiều phần/hỗn hợp" được nhúng trong "nhiều phần/dữ liệu biểu mẫu"

Tác nhân người dùng nên cố gắng cung cấp tên tệp cho mỗi tệp đã gửi. Tên tệp có thể được chỉ định bằng tham số "tên tệp" của 'Bố trí nội dung. tiêu đề dữ liệu biểu mẫu' hoặc, trong trường hợp có nhiều tệp, trong phần 'Bố trí nội dung. file' tiêu đề của subpart. Nếu tên tệp của hệ điều hành của máy khách không ở dạng US-ASCII, thì tên tệp có thể được ước lượng hoặc mã hóa bằng phương pháp. Điều này thuận tiện cho những trường hợp, chẳng hạn như các tệp đã tải lên có thể chứa các tham chiếu đến nhau [e. g. , tệp TeX và tệp ". sty" mô tả phong cách phụ trợ]

Ví dụ sau minh họa mã hóa "multipart/form-data". Giả sử chúng ta có dạng sau



INPUT - O EMPTY              -- form control -->
%attrs;                              -- %coreattrs, %i18n, %events --
  type        %InputType;    TEXT      -- what kind of widget is needed --
  name        CDATA          #IMPLIED  -- submit as part of form --
  value       CDATA          #IMPLIED  -- Specify for radio buttons and checkboxes --
  checked     [checked]      #IMPLIED  -- for radio buttons and check boxes --
  disabled    [disabled]     #IMPLIED  -- unavailable in this context --
  readonly    [readonly]     #IMPLIED  -- for text and passwd --
  size        CDATA          #IMPLIED  -- specific to each type of field --
  maxlength   NUMBER         #IMPLIED  -- max chars for text fields --
  src         %URI;          #IMPLIED  -- for fields with images --
  alt         CDATA          #IMPLIED  -- short description --
  usemap      %URI;          #IMPLIED  -- use client-side image map --
  ismap       [ismap]        #IMPLIED  -- use server-side image map --
  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
  accesskey   %Character;    #IMPLIED  -- accessibility key character --
  onfocus     %Script;       #IMPLIED  -- the element got the focus --
  onblur      %Script;       #IMPLIED  -- the element lost the focus --
  onselect    %Script;       #IMPLIED  -- some text was selected --
  onchange    %Script;       #IMPLIED  -- the element value was changed --
  accept      %ContentTypes; #IMPLIED  -- list of MIME types for file upload --
  >
2

Nếu người dùng nhập "Larry" trong kiểu nhập văn bản và chọn tệp văn bản "file1. txt", tác nhân người dùng có thể gửi lại dữ liệu sau



INPUT - O EMPTY              -- form control -->
%attrs;                              -- %coreattrs, %i18n, %events --
  type        %InputType;    TEXT      -- what kind of widget is needed --
  name        CDATA          #IMPLIED  -- submit as part of form --
  value       CDATA          #IMPLIED  -- Specify for radio buttons and checkboxes --
  checked     [checked]      #IMPLIED  -- for radio buttons and check boxes --
  disabled    [disabled]     #IMPLIED  -- unavailable in this context --
  readonly    [readonly]     #IMPLIED  -- for text and passwd --
  size        CDATA          #IMPLIED  -- specific to each type of field --
  maxlength   NUMBER         #IMPLIED  -- max chars for text fields --
  src         %URI;          #IMPLIED  -- for fields with images --
  alt         CDATA          #IMPLIED  -- short description --
  usemap      %URI;          #IMPLIED  -- use client-side image map --
  ismap       [ismap]        #IMPLIED  -- use server-side image map --
  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
  accesskey   %Character;    #IMPLIED  -- accessibility key character --
  onfocus     %Script;       #IMPLIED  -- the element got the focus --
  onblur      %Script;       #IMPLIED  -- the element lost the focus --
  onselect    %Script;       #IMPLIED  -- some text was selected --
  onchange    %Script;       #IMPLIED  -- the element value was changed --
  accept      %ContentTypes; #IMPLIED  -- list of MIME types for file upload --
  >
3

Nếu người dùng đã chọn tệp [hình ảnh] thứ hai "file2. gif", tác nhân người dùng có thể xây dựng các phần như sau

FormData có thể được sử dụng như thế nào?

Đối tượng FormData cho phép bạn biên dịch một tập hợp các cặp khóa/giá trị để gửi bằng XMLHttpRequest . Nó chủ yếu được sử dụng để gửi dữ liệu biểu mẫu, nhưng có thể được sử dụng độc lập với biểu mẫu để truyền dữ liệu có khóa.

Làm cách nào để hiển thị FormData trong HTML?

Thuộc tính formtarget chỉ định tên hoặc từ khóa cho biết vị trí hiển thị phản hồi nhận được sau khi gửi biểu mẫu . Thuộc tính formtarget ghi đè thuộc tính target của phần tử

Làm cách nào để lưu trữ dữ liệu từ một biểu mẫu trong HTML?

Lưu trữ web HTML cung cấp hai đối tượng để lưu trữ dữ liệu trên máy khách. .
cửa sổ. localStorage - lưu trữ dữ liệu không có ngày hết hạn
cửa sổ. sessionStorage - lưu trữ dữ liệu cho một phiên [dữ liệu bị mất khi đóng tab trình duyệt]

FormData trong HTML là gì?

Giao diện FormData cung cấp một cách để dễ dàng xây dựng một tập hợp các cặp khóa/giá trị đại diện cho các trường biểu mẫu và giá trị của chúng , sau đó có thể . phương thức gửi[]. Nó sử dụng cùng một định dạng mà một biểu mẫu sẽ sử dụng nếu loại mã hóa được đặt thành "multipart/form-data".

Chủ Đề