Xin hỏi về get value 0 từ form trong laravel
Chào mọi người. Hiện tại em đang làm cái form có select có option value = 0, khi submit thì em check cái value của select đó thì thấy nó là rỗng [] , cho em hỏi giờ em muốn lấy gia trị value = 0 thì phải làm sao ạ? Em cám ơn
Em thấy trên statck overflow nó có nói là value = 0 thì trong php nó hiểu là empty, vậy có cách nào xử lý ko ạ? https://stackoverflow.com/questions/2220519/in-php-is-0-treated-as-empty
3 ANSWERS
Em đã tìm ra nguyên nhân ạ. Do em có sử dụng hàm getFilterData để lọc những request cần dùng và request phải có giá trị khác { null , empty, FALSE, 0 } nên khi giá trị = 0 thì nó bỏ cái request có giá trị = 0 ra. Cách xử lý: Truyền vào hàm 1 chuỗi 'strlen' . Truyền vào như vậy thì hàm sẽ "remove NULL, FALSE and Empty Strings (""), but leave values of 0 (zero)" Link kham khảo: https://www.php.net/manual/en/function.array-filter.php
mình cũng đang gặp phải vấn đề này và k sử dụng hàm gì hết remove hết element có giá trị null,0...
Trên server xử lí, nếu value có giá trị bằng [] thì gán lại cho nó bằng 0 là được mà bạn =))
Để em thử ạ
@nhoxhocju vd em tạo 1 option value = "" tên là Choose status, thì cái này có gia trị [] giống value = 0
@nhoxhocju Cái này tùy bạn xử lí thôi, để tránh trường hợp giữa value = ""
và value = "0"
thì bạn có thể quy định cái value mà, ví dụ như
value = -1
: Trường hợp mặc địnhvalue = 0
: Option 1value = 1
: Option 2 ....
@huusu1996 ý là em muốn tìm cách nào để xử lý cho nó ra giá tri = 0 thôi. Chứ nếu quy định như anh thì em chỉ cần quy định value = giá trị khác như 2 thì disable là dc rồi mà @@
@nhoxhocju Bạn đang dùng select option dạng single
hay multiple
vậy ạ.
Phân biệt giữa single
và multiple
ở đây: https://www.w3schools.com/tags/att_select_multiple.asp
@huusu1996 Mình dùng single
@nhoxhocju Chỗ value trong cái array của bạn đổi string thành interger xem sao. Đến bước này mình đoán thôi nhé.
"0" => [
....
'value' => 0, // not '0'
],
"1" => [
....
'value' => 1, //not '1'
]
@huusu1996 chuyển về integer cũng ko dc lun @@
Theo mình nhớ thì value 0 khi phía backend nó vẫn sẽ nhận là 0 mà nhỉ, bạn có thể cho mình xem đoạn code được không. Hoặc bạn có thể ép kiểu string cho nó để khi đưa lên nó sẽ nhận 0 là string
Khi set value select value = 0 thì nó ra request ko có gia trị của thằng status, còn nếu value = 1 thi có giá trị
@nhoxhocju bạn có thể chụp ảnh data chuyền lên server không ạ.Mình nghĩ data chuyền lên server có vấn đề
@phamtuananh760 đó là mình bắt request đó ạ. request nó bắt từ form lên sever đó ạ
@nhoxhocju Mình vừa thử tạo 1 form laravel và gửi lên 0 vẫn nhận. Bạn có xử lí gì phía frontend không vậy?
@duong.manh.hoang Mình ko xử lý gì cả, chỉ foreach ra thôi
@nhoxhocju bạn dd hộ mình cái $listStatus
với
@duong.manh.hoang đây ạ
select những value khác có trả về đúng không bạn?
@hungpv đúng anh. Value != 0 thì trả về ok mà bằng 0 thì request trả về []
@hungpv ý là khi value = 0 của name="status" thì request->status ko có giá trị anh