Yêu cầu thg 5 8, 2020 1:06 SA 387 0 3
  • 387 0 3
+1

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

Chia sẻ
  • 387 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

thg 5 8, 2020 1:09 SA

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

Avatar Yoshin @nhoxhocju
thg 5 8, 2020 1:09 SA

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

Avatar Yoshin @nhoxhocju
thg 5 8, 2020 1:12 SA

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

3 CÂU TRẢ LỜI


Đã trả lời thg 5 8, 2020 4:06 SA
Đã được chấp nhận
-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

Chia sẻ
Avatar Quyền @sunvboy
thg 12 10, 2021 5:33 SA

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

Avatar Yoshin @nhoxhocju
thg 12 13, 2021 7:42 SA

@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

Đã trả lời thg 5 8, 2020 1:08 SA
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 =))

Chia sẻ
Avatar Yoshin @nhoxhocju
thg 5 8, 2020 1:10 SA

Để em thử ạ

Avatar Yoshin @nhoxhocju
thg 5 8, 2020 1:12 SA

@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

Avatar Michael Scofield @simple1805
thg 5 8, 2020 1:21 SA

@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 ....
Avatar Yoshin @nhoxhocju
thg 5 8, 2020 1:23 SA

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

Avatar Michael Scofield @simple1805
thg 5 8, 2020 1:34 SA

@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

Avatar Yoshin @nhoxhocju
thg 5 8, 2020 1:38 SA

@huusu1996 Mình dùng single

Avatar Michael Scofield @simple1805
thg 5 8, 2020 2:25 SA

@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'
]
Avatar Yoshin @nhoxhocju
thg 5 8, 2020 3:03 SA

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

Đã trả lời thg 5 8, 2020 1:15 SA
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

Chia sẻ
Avatar Yoshin @nhoxhocju
thg 5 8, 2020 1:19 SA

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ị

Avatar Phạm Tuấn Anh @phamtuananh760
thg 5 8, 2020 1:30 SA

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

Avatar Yoshin @nhoxhocju
thg 5 8, 2020 1:31 SA

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

Avatar Dương Mạnh Hoàng @duong.manh.hoang
thg 5 8, 2020 1:34 SA

@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

Avatar Yoshin @nhoxhocju
thg 5 8, 2020 1:39 SA

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

2.PNG

1.PNG

Avatar Dương Mạnh Hoàng @duong.manh.hoang
thg 5 8, 2020 1:52 SA

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

Avatar Yoshin @nhoxhocju
thg 5 8, 2020 3:04 SA
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí