Hỏi về lấy giá trị thẻ select multi trong PHP
Lần đầu lập topic hỏi có gì sai sót mọi người bỏ qua cho em ợ,
Em có code HTML như sau:
<select name="CongViec[]" size="5" multiple="multiple">
<option value="Kế toán" selected="selected">Kế toán</option>
<option value="Quản lý">Quản lý</option>
<option value="Bán hàng" selected="selected">Bán hàng</option>
<option value="Tư Vấn">Tư Vấn</option>
</selec.t>
và code PHP:
$cv =$_POST["CongViec"];
foreach($cv as $cc)
{
echo $cc;
}
Code như thế thì khi chạy sẽ lấy được multi giá trị trong select. tuy nhiên nếu thuộc tính name trong tag select em không để kiểu mảng mà biến $cv[] sẽ để kiểu mảng thì khi chạy sẽ không lấy được multi giá trị mà chỉ lấy dc giá trị sau cùng (nếu click chọn từ 2 giá trị trở kên trong select)
em không hiểu tại sao thuộc tính name trong html lại phải kiểu array, em tưởng rằng thuộc tính name đó chỉ để định danh thôi chứ không liên quan gì về kiểu dữ liệu. Ai biết giải thích giúp em, em cảm ơn
Theo mình thì thuộc tính
name
của HTML cho các element dùng để định danh và nó được truy xuất như 1 biến có kiểu dữ liệu nguyên thủy (string, number, …) nếu mình chỉ dùng tên thông thường cho các element nhập liệu.Khi bạn muốn get dữ liệu dạng multiple values như select box bên trên hoặc checkboxes thì để cho ngôn ngữ lập trình hiểu và lấy được nhiều giá trị thì mình phải khai báo thuộc tính name với cặp dấu ngoặc vuông đằng sau để nhằm cho ngôn ngữ lập trình biết là mình đang muốn get multiple values. Mà multiple values thì mặc định là ở dạng array rồi.
Ở đây bạn có thể dùng mảng 1 chiều hoặc 2 chiều đều được hết nhé.
Tóm lại, thuộc tính name trong HTML nó như là tên biến và kiểu dữ liệu được khai báo để bên phía ngôn ngữ lập trình hiểu và lấy được giá trị 1 cách đúng nhất.