Aug 6, 2013

Lấy dữ liệu từ checkbox trong php

Bài này ... không viết không được. Một vấn đề mà hồi nhỏ mình đã nghi ngờ nhưng chưa thử. Nhỏ thực ra thì lúc đó tầm lớp 9, làm cái Đố Vui bằng PHP. Giờ gặp lại.


Làm thế nào để lấy các giá trị từ các checkbox có cùng tên?. Giả sử có 1 checkbox là danh sách các món ăn để gọi. Điều ta mong đợi ở đây là nó sẽ trả về cho ta 1 mảng chứa các giá trị mà người dùng đã chọn

Code demo nó như thế này:

1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
// For processing
if (isset($_POST[sbMyForm]))
{
    echo "<pre>";
    print_r ($_POST[myCheckbox]);
    echo "</pre>";

}
?>
<html>
<head>
<title>Demo: checkbox</title>
</head>
<body>
<form method="POST" action ="checkbox.php">
    <p><input type="checkbox" name="myCheckbox" value = "TrangTron">Bánh tráng trộn</input></p>
    <p><input type="checkbox" name="myCheckbox" value = "BapXao"> Bắp xào </input></p>
    <p><input type="checkbox" name="myCheckbox" value = "TrangNuong">Bánh tráng nướng </input></p>
    <input type="submit" name="sbMyForm" value="Hoàn thành"></input>
</form>
</body>
</html>

Chạy thử code, điều đáng buồn là nó chị hiện đúng cái selection cuối cùng mà người dùng chọn. Để sửa lỗi trên, ta chỉ cần thay đổi myCheckbox thành myCheckbox. Nó sẽ trở thành 1 mảng khi truyền vào trong $_POST. Đơn giản và hiệu quả.
1
2
3
<p><input type="checkbox" name="myCheckbox[]" value = "TrangTron">Bánh tráng trộn</input></p>
    <p><input type="checkbox" name="myCheckbox[]" value = "BapXao"> Bắp xào </input></p>
    <p><input type="checkbox" name="myCheckbox[]" value = "TrangNuong">Bánh tráng nướng </input></p>