Asked May 8th, 1:06 AM 91 0 3
  • 91 0 3
+1

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

Share
  • 91 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

Nagi @hungpv
May 8th, 1:09 AM

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

0
| Reply
Share
Yoshin @nhoxhocju
May 8th, 1:09 AM

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

0
| Reply
Share
Yoshin @nhoxhocju
May 8th, 1:12 AM

@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, 4:06 AM
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
Answered May 8th, 1:08 AM
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
Yoshin @nhoxhocju
May 8th, 1:10 AM

Để em thử ạ

0
| Reply
Share
Yoshin @nhoxhocju
May 8th, 1:12 AM

@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
SuNH @huusu1996
May 8th, 1:21 AM

@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
Yoshin @nhoxhocju
May 8th, 1:23 AM

@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
SuNH @huusu1996
May 8th, 1:34 AM

@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
Yoshin @nhoxhocju
May 8th, 1:38 AM

@huusu1996 Mình dùng single

0
| Reply
Share
SuNH @huusu1996
May 8th, 2:25 AM

@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
Yoshin @nhoxhocju
May 8th, 3:03 AM

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

0
| Reply
Share
Answered May 8th, 1:15 AM
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
Yoshin @nhoxhocju
May 8th, 1:19 AM

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
Phạm Tuấn Anh @phamtuananh760
May 8th, 1:30 AM

@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
Yoshin @nhoxhocju
May 8th, 1:31 AM

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

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

@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
Yoshin @nhoxhocju
May 8th, 1:39 AM

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

2.PNG

1.PNG

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

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

0
| Reply
Share
Yoshin @nhoxhocju
May 8th, 3:04 AM
0
| Reply
Share