Asked May 8th, 2020 1:06 a.m. 376 0 3
  • 376 0 3
+1

Xin hỏi về get value 0 từ form trong laravel

Share
  • 376 0 3

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

May 8th, 2020 1:09 a.m.

select những value khác có trả về đúng không bạn?

0
| Reply
Share
Avatar Yoshin @nhoxhocju
May 8th, 2020 1:09 a.m.

@hungpv đúng anh. Value != 0 thì trả về ok mà bằng 0 thì request trả về []

0
| Reply
Share
Avatar Yoshin @nhoxhocju
May 8th, 2020 1:12 a.m.

@hungpv ý là khi value = 0 của name="status" thì request->status ko có giá trị anh

0
| Reply
Share

3 ANSWERS


Answered May 8th, 2020 4:06 a.m.
Accepted
-3

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. 1.PNG 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)" 2.PNG Link kham khảo: https://www.php.net/manual/en/function.array-filter.php

Share
Avatar Quyền @sunvboy
Dec 10th, 2021 5:33 a.m.

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...

0
| Reply
Share
Avatar Yoshin @nhoxhocju
Dec 13th, 2021 7:42 a.m.

@sunvboy Cái này dễ mà do ngày xưa mình muốn làm theo kiểu dùng array_filter nên nó rắc rối thế chứ. Giờ mình ko dùng array_filter để làm nữa rùi, có nhiều cách để đưa value request vào model

0
| Reply
Share
Answered May 8th, 2020 1:08 a.m.
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 =))

Share
Avatar Yoshin @nhoxhocju
May 8th, 2020 1:10 a.m.

Để em thử ạ

0
| Reply
Share
Avatar Yoshin @nhoxhocju
May 8th, 2020 1:12 a.m.

@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

0
| Reply
Share
Avatar Michael Scofield @simple1805
May 8th, 2020 1:21 a.m.

@nhoxhocju Cái này tùy bạn xử lí thôi, để tránh trường hợp giữa value = ""value = "0" thì bạn có thể quy định cái value mà, ví dụ như

  • value = -1: Trường hợp mặc định
  • value = 0: Option 1
  • value = 1: Option 2 ....
0
| Reply
Share
Avatar Yoshin @nhoxhocju
May 8th, 2020 1:23 a.m.

@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à @@

0
| Reply
Share
Avatar Michael Scofield @simple1805
May 8th, 2020 1:34 a.m.

@nhoxhocju Bạn đang dùng select option dạng single hay multiple vậy ạ.

Phân biệt giữa singlemultiple ở đây: https://www.w3schools.com/tags/att_select_multiple.asp

0
| Reply
Share
Avatar Yoshin @nhoxhocju
May 8th, 2020 1:38 a.m.

@huusu1996 Mình dùng single

0
| Reply
Share
Avatar Michael Scofield @simple1805
May 8th, 2020 2:25 a.m.

@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'
]
0
| Reply
Share
Avatar Yoshin @nhoxhocju
May 8th, 2020 3:03 a.m.

@huusu1996 chuyển về integer cũng ko dc lun @@

0
| Reply
Share
Answered May 8th, 2020 1:15 a.m.
0

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

Share
Avatar Yoshin @nhoxhocju
May 8th, 2020 1:19 a.m.

1.PNG 2.PNG 3.PNG 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ị

0
| Reply
Share
Avatar Phạm Tuấn Anh @phamtuananh760
May 8th, 2020 1:30 a.m.

@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 đề

0
| Reply
Share
Avatar Yoshin @nhoxhocju
May 8th, 2020 1:31 a.m.

@phamtuananh760 đó là mình bắt request đó ạ. request nó bắt từ form lên sever đó ạ

0
| Reply
Share
Avatar Dương Mạnh Hoàng @duong.manh.hoang
May 8th, 2020 1:34 a.m.

@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? Screenshot from 2020-05-08 08-33-53.png

0
| Reply
Share
Avatar Yoshin @nhoxhocju
May 8th, 2020 1:39 a.m.

@duong.manh.hoang Mình ko xử lý gì cả, chỉ foreach ra thôi

2.PNG

1.PNG

0
| Reply
Share
Avatar Dương Mạnh Hoàng @duong.manh.hoang
May 8th, 2020 1:52 a.m.

@nhoxhocju bạn dd hộ mình cái $listStatus với

0
| Reply
Share
Avatar Yoshin @nhoxhocju
May 8th, 2020 3:04 a.m.
0
| Reply
Share
Viblo
Let's register a Viblo Account to get more interesting posts.