2010-09-14 33 views
8

Tôi tự hỏi nếu có bất kỳ loại bảo đảm nào về thứ tự các biến POST tôi sẽ thấy ở phía máy chủ.Thứ tự mong đợi của một mảng được gửi dưới dạng HTML là gì?

Trường hợp sử dụng của tôi là tôi có biểu mẫu mà người dùng sẽ điền để nhập danh sách tên và email. Tôi đang sử dụng một hàng của bảng, mỗi trong số đó có hai đầu vào:

<table> 
<tr> 
<td><input type='text' name='name[]' /></td> 
<td><input type='text' name='email[]' /></td> 
</tr> 
<tr> 
<td><input type='text' name='name[]' /></td> 
<td><input type='text' name='email[]' /></td> 
</tr> 
</table> 

Hàng có thể được nhân bản thông qua javascript để cho phép người dùng gõ vào nhiều tên và email vì vậy tôi sẽ không biết trước thời hạn như thế nào nhiều người sẽ được gửi.

Ở phía máy chủ, tôi thấy $ _POST ['email'] và $ _POST ['name'] được đặt nhưng tôi tự hỏi liệu tôi có thể giả định $ _POST ['email'] [0] một cách an toàn sẽ tương ứng với $ _POST ['name'] [0], $ _POST ['email'] [1] sẽ tương ứng với $ _POST ['name'] [1], v.v. Một số thử nghiệm cơ bản dường như cho biết có nhưng tôi tự hỏi nếu có một bảo lãnh hoặc nếu tôi chỉ nhận được may mắn.

Trả lời

12

tại sao không thêm một chìa khóa nhóm như:

<td><input type='text' name='user[0][name]' /></td> 
<td><input type='text' name='user[0][email]' /></td> 
</tr> 
<tr> 
<td><input type='text' name='user[1][name]' /></td> 
<td><input type='text' name='user[1][email]' /></td> 

và sau đó thiết lập các manuall user chỉ khi bạn sao chép dựa trên số lượng hiện tại. Bằng cách này tất cả mọi thứ đã được coallated.

1

Dữ liệu sẽ xuất hiện theo thứ tự như trong biểu mẫu. Vì vậy, dòng đầu tiên có phím 0, thứ hai liên tiếp - 1.

+0

Nói ai? Tôi phải hoàn toàn chắc chắn, nếu tôi sẽ sử dụng nó trong sản xuất. –

+0

tại sao bạn không chỉ kiểm tra biểu mẫu đơn giản và kết quả var_dump. Bạn sẽ thấy kết quả. kết quả sẽ luôn giống như trong biểu mẫu html (tất nhiên bạn có thể thay đổi vị trí hiển thị của các phần tử không có thông tin) –

+1

Nói thông số HTML: "Tên/giá trị kiểm soát được liệt kê theo thứ tự chúng xuất hiện trong tài liệu . " http://www.w3.org/TR/html401/interact/forms.html#form-content-type – webbiedave

0

Như Vaidas Zilionis nói, dữ liệu sẽ xuất hiện trong chính xác thứ tự như chúng xuất hiện trong hình thức, xem HTML 4.01 Specification của W3C: Ứng dụng

/x-www-form-urlencoded
[...] 2. tên kiểm soát/giá trị được liệt kê theo thứ tự chúng xuất hiện trong tài liệu.

multipart/form-data
[...] A "multipart/form-data" tin nhắn có chứa một loạt các bộ phận, từng đại diện cho một điều khiển thành công. Các bộ phận được gửi đến đại lý 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.

7

Thứ tự mong đợi của mảng được gửi dưới dạng HTML là gì?

Theo đặc tả HTML:

Việc kiểm soát tên/giá trị được liệt kê trong theo thứ tự chúng xuất hiện trong tài liệu

http://www.w3.org/TR/html401/interact/forms.html#form-content-type

Tuy nhiên, đó là mã hóa tốt hơn thực hành sử dụng phương pháp tiếp cận mảng được lập chỉ mục như được hiển thị trong câu trả lời của prodigitalson.

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