2011-01-14 34 views
27

tôi thấy một cái gì đó trên trang web này: Xử lý mảng của HTML Form Elements trong JavaScript và PHP http://www.ajaxprojects.com/ajax/tutorialdetails.php?itemid=343Phần tử HTML Array, name = "something []" hoặc name = "something"?

Nó nói về mảng đưa vào property name và làm thế nào có được giá trị bộ sưu tập đầu vào của. ví dụ: name="education[]"

Nhưng như tôi biết, yếu tố đầu vào HTML đã sẵn sàng theo mảng bởi name. Ở phía máy khách (GetElementsByName) hoặc phía máy chủ ($_POST trong PHP hoặc Request.Form trong ASP.NET) ví dụ: name="education", vậy điều gì khác với hoặc không phải là []?

+1

với giáo dục [], bạn có thể nhập các trường có tên như giáo dục [chủ đề] [1] và giáo dục [subject] [2] để nhận mảng tương ứng ở phía máy chủ (trong php $ _POST ['education ']) – naiquevin

Trả lời

39

PHP sử dụng cú pháp khung vuông để chuyển đổi đầu vào dạng thành một mảng, vì vậy khi bạn sử dụng name="education[]" bạn sẽ nhận được một mảng khi bạn làm điều này:

$educationValues = $_POST['education']; // Returns an array 
print_r($educationValues); // Shows you all the values in the array 

Ví dụ:

<p><label>Please enter your most recent education<br> 
    <input type="text" name="education[]"> 
</p> 
<p><label>Please enter any previous education<br> 
    <input type="text" name="education[]"> 
</p> 
<p><label>Please enter any previous education<br> 
    <input type="text" name="education[]"> 
</p> 

Sẽ cung cấp cho bạn tất cả các giá trị đã nhập bên trong mảng $_POST['education'].

Trong JavaScript, đó là hiệu quả hơn để có được nguyên tố này bằng id ...

document.getElementById("education1"); 

id không nhất thiết phải phù hợp với tên:

<p><label>Please enter your most recent education<br> 
    <input type="text" name="education[]" id="education1"> 
</p> 
14

nếu bạn có các hộp kiểm, bạn có thể chuyển một loạt giá trị đã chọn.

<input type="checkbox" name="fruits[]" value="orange"/> 
<input type="checkbox" name="fruits[]" value="apple"/> 
<input type="checkbox" name="fruits[]" value="banana"/> 

Ngoài ra nhiều chọn Dropdowns

<select name="fruits[]" multiple> 
    <option>apple</option> 
    <option>orange</option> 
    <option>pear</option> 
</select> 
7

Đó là khác nhau. nếu bạn gửi mẫu đơn này:

<input type="text" name="education[]" value="1"> 
<input type="text" name="education[]" value="2"> 
<input type="text" name="education[]" value="3"> 

bạn sẽ nhận được một mảng trong PHP, trong ví dụ này bạn sẽ nhận được $_POST['education'] = [1, 2, 3].

nếu bạn gửi mẫu đơn này mà không []:

<input type="text" name="education" value="1"> 
<input type="text" name="education" value="2"> 
<input type="text" name="education" value="3"> 

bạn sẽ nhận được giá trị cuối cùng, ở đây bạn sẽ nhận được $_POST['education'] = 3.

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