2012-11-07 21 views
5

Ai đó có thể giải thích phương thức nào hoặc cách sử dụng mã này bằng cách nào?Tôi không thể tìm ra hình thức "hành động" này có nghĩa là

<form method='post' enctype='multipart/form-data' target='gform_ajax_frame_1' id='gform_1' 
action='/contact-us/#gf_1'> 
</form> 

Tôi đang cố gắng tìm hiểu thêm về biểu mẫu và ngay bây giờ tôi đang cố tạo một biểu mẫu nhiều phần như một người bạn của tôi đã làm.

Tôi đã quen với các biểu mẫu có nội dung là action="contact.php" nhưng biểu mẫu này cho biết action="/contact_us/#gf_1". Nó có nghĩa là gì?

+0

Về cơ bản, nó chỉ nói rằng * một cái gì đó * nằm tại '/contact-us/'được cho là xử lý yêu cầu [' POST'] (http://en.wikipedia.org/wiki/POST_%28HTTP%29). – jensgram

Trả lời

2

Trong hình thức

hành động ám chỉ

đến đâu để gửi form-data khi biểu mẫu được gửi

và phương pháp đề cập đến

Thuộc tính phương pháp quy định cụ thể như thế nào để gửi biểu mẫu dữ liệu (biểu mẫu dữ liệu được gửi đến trang được chỉ định trong thuộc tính hành động).

Dữ liệu biểu mẫu có thể được gửi dưới dạng biến URL (với phương thức = "get") hoặc dưới dạng giao dịch bài đăng HTTP (với phương thức = "bài đăng").

Ghi chú về GET:

Gắn form-data vào URL trong cặp tên/giá trị Chiều dài của một URL được giới hạn (khoảng 3000 ký tự) Không bao giờ sử dụng GET để gửi nhạy cảm dữ liệu!(Sẽ được hiển thị trong URL) hữu ích để gửi biểu mẫu mà người dùng muốn đánh dấu kết quả GET là tốt hơn cho dữ liệu không an toàn, như chuỗi truy vấn trong Google

Ghi chú về POST:

Gắn form-data bên trong cơ thể của yêu cầu HTTP (dữ liệu không là hiển thị là trong URL) không có giới hạn kích thước Mẫu đệ trình với POST không thể đánh dấu

http://www.w3schools.com/tags/att_form_action.asp

http://www.w3schools.com/tags/att_form_method.asp

+4

Eugh.Các W3Schools điển hình, thiếu [sự khác biệt quan trọng nhất giữa POST và GET] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.1). – Quentin

+2

@Quentin Nào, thật đáng buồn, rất nhiều người dường như bỏ qua khi đặt câu hỏi liên quan đến lời nhắc "xác nhận gửi lại": -/Phải đọc khác là [URI, Địa chỉ và sử dụng HTTP GET và POST] (http : //www.w3.org/2001/tag/doc/whenToUseGet.html). – jensgram

+0

@Quentin tôi có thể gửi email cho bạn toàn bộ biểu mẫu mà tôi đang cố gắng hiểu và có thể bạn có một số lời khuyên không? – Abel

2

Đó là một URI (mặc dù một người có mã định danh phân đoạn trong đó, điều này không bình thường đối với hành động biểu mẫu).

Đôi khi URI cho phép bạn suy ra những công nghệ mà máy chủ sẽ sử dụng để tạo phản hồi cho nó. Đây không phải là một trong những URI đó.

Nó có thể sử dụng PHP. Nó có thể không. Chắc chắn có rất nhiều công nghệ có thể được sử dụng (Perl, Python, JavaScript, Ruby, Java, .NET, v.v. v.v.). Không có cách nào để biết được nào là đang được sử dụng từ HTML đó.

Các công nghệ liên quan chỉ nên quan trọng đối với những người có quyền truy cập để thay đổi chúng mặc dù và những người đó có thể xem trên máy chủ để xem URI sẽ được xử lý như thế nào.

Vì tất cả chúng có thể xử lý mọi thứ mà biểu mẫu liên hệ sẽ cần trên máy chủ, biết ví dụ cụ thể nào sử dụng sẽ không cung cấp bất kỳ thông tin chi tiết nào về xây dựng của riêng bạn.

+0

cảm ơn bạn đã trả lời ... technologie bạn sẽ giới thiệu? – Abel

+0

Tôi muốn sử dụng Perl với [PSGI] (http://plackperl.org/) và [Web :: Đơn giản] (https://metacpan.org/module/Web::Simple), [Dancer] (http : //www.perldancer.org/) hoặc [Catalyst] (http://www.catalystframework.org/) ... nhưng nó là một sở thích cá nhân hơi (mà phải được ủ bởi các tùy chọn được trình bày bởi dịch vụ lưu trữ web của bạn và khả năng của bạn để chuyển sang một dịch vụ lưu trữ khác). – Quentin

2

<form action=""> là như <a href=""> - nó chỉ URL mà trình duyệt sẽ yêu cầu khi biểu mẫu được gửi.

URL cho cả actionhref có thể tương đối hoặc tuyệt đối. contact.php liên quan đến trang hiện tại, vì vậy khi biểu mẫu có hành động đó được gửi, trình duyệt sẽ lấy URL của trang hiện tại, xóa mọi thứ sau / cuối cùng, thêm contact.php và gửi biểu mẫu tới URL đó. Ví dụ.

  • http://stackoverflow.com/questions/13266788/contact.php

Ngược lại, /contact-us/#gf_1 bắt đầu với một /, do đó, nó liên quan đến hiện tại miền. Trong trường hợp này, trình duyệt sẽ lấy tên miền của trang hiện tại, thêm /contactus/#gf_1 vào đó và gửi biểu mẫu ở đó. Ví dụ.

  • http://stackoverflow.com/contact-us/#gf_1

Trong URL, băm (#) nhân vật bắt đầu fragment identifier. Điều này đề cập đến một điểm neo trên trang, được biểu thị bằng HTML bằng thẻ neo được đặt tên (ví dụ: <a name="gf_1"></a>) hoặc thuộc tính id trên bất kỳ thẻ nào (ví dụ: <p id="gf_1"></p>).

Theo quy ước, khi trình duyệt truy cập URL có mã định danh phân đoạn, trình duyệt sẽ cuộn điểm neo được tham chiếu bởi số nhận dạng phân đoạn đó vào chế độ xem khi trang tải.

Mã định danh phân đoạn là không phải được gửi đến máy chủ, do đó bản thân nó sẽ không ảnh hưởng đến việc gửi biểu mẫu. Tuy nhiên, JavaScript chạy trên trang có thể xem định danh phân đoạn và có thể gửi yêu cầu AJAX tới máy chủ dựa trên đó.

+0

D. Waithe thì # gf_1 là tệp chỉ định nơi thông tin biểu mẫu được gửi đến? – Abel

+0

@ Abel: ah, không. Tôi sẽ cập nhật câu trả lời để giải thích rằng bit quá. –

+0

@ Abel: đã xong. –

Các vấn đề liên quan