![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 4 Dołączył: 25.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Kiedy wpisuję w polu formularza (<input type="text" />) jakiś ciąg tekstowy i sprawdzam potem czy jest to string, czy integer pokazuje mi, że jest to string i jest ok, ale jeśli wpiszę w formularzu 10 to chciałbym, żeby potem php wykryło te dane jako integer, a nie jako string. Jak to ugryźć?
Podejrzewam, że jest jakaś prosta metoda, żeby to wykryć. Ten post edytował miniol 16.05.2012, 13:38:47 |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Formularz zawsze wysyła dane jako string. Co ci to przeszkadza, bo nie bardzo rozumiem w czym masz problem.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 2 Dołączył: 19.04.2012 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 4 Dołączył: 25.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Chodzi o to, że na podstawie typu danych, lądują one odpowiednio w różnych tablicach i są w różny sposób przetwarzane.
Spośród 10tys pól losowane są 3-4 pola które muszą zostać uzupełnione. Dlatego ręczne przypisanie typu danych dla każdego pola jest nierealne. Jednym razem może to być np: Nazwisko (wtedy musi być string) a innym razem może to być rok, wtedy powinno być jako int. RAV_8 o ile rozumiem, to Twoje rozwiązanie zamienia mi ciąg na int. A nie zależy mi na tym, żeby zmieniać typ danych, tylko chcę go rozpoznać. Jest jakiś pomysł na jakiś warunek? Ten post edytował miniol 16.05.2012, 14:15:14 |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No ale przecież jak wysyłasz pola to chyba sam wiesz czym to pole jest. A skoro wiesz czym jest to naprawdę nie widzę żadnego problemu.
Cytat RAV_8 o ile rozumiem, to Twoje rozwiązanie zamienia mi ciąg na int. A nie zależy mi na tym, żeby zmieniać typ danych, tylko chcę go rozpoznać. Jest jakiś pomysł na jakiś warunek? is_numeric - manual
Powód edycji: [nospor]:
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 4 Dołączył: 25.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
No ale przecież jak wysyłasz pola to chyba sam wiesz czym to pole jest. A skoro wiesz czym jest to naprawdę nie widzę żadnego problemu. No właśnie nie zupełnie. Za każdym razem jest to pole zupełnie inne. W każdym razie is_numeric jest tym czego szukałem. Dzięki!
|
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat No właśnie nie zupełnie. Za każdym razem jest to pole zupełnie inne. No to oprócz pola, wysyłaj również info o tym polu np. przy pomocy pola hiddenCytat W każdym razie is_numeric jest tym czego szukałem. Przecież ktoś zamiast nazwiska może wpisać 1992 i co? I będziesz myślał że to pole to był rok a nie nazwisko.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 4 Dołączył: 25.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Chodzi o to, że pola są pobierane z API (konkretnie chodzi o allegro webapi - czyli kategorię i jego atrybuty) i nie mam na nie zbyt wielkiego wpływu. Na podstawie tych typów danych trzeba wygenerować odpowiednią tablicę i wprowadzić ją albo do 'fvalue-string' => '' albo do 'fvalue-int' => ''.
Jedyne co zwraca mi api przy pobieraniu atrybutów to informacje o tym, czy pole formularza będzie listą rozwijaną, czy polem tekstowym. I tak oto powstaje mi pole tekstowe z rokiem wydania oraz pole tekstowe np z nazwiskiem. Teraz muszę to odpowiednio wstawić do 'fvalue-string' => '' albo do 'fvalue-int' => ''. Jeżeli ktoś w rubryce Nazwisko wpisze 1992, to już API wychwyci ten błąd. Ja osobiście nie widzę innego sensownego rozwiązania. Ale też nie twierdzę, że takowego nie ma. Ten post edytował miniol 16.05.2012, 14:58:16 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 158 Pomógł: 43 Dołączył: 9.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem dokładnie jaką metodę webAPI Allegro wywołujesz, ale Allegro przekazuje również dane o typie pól formularzy. Jeżeli wywołujesz doGetSellFormFieldsForCategory, to zgodnie z dokumentacją:
Cytat sell-form-type | int Określenie typu pola w formularzu sprzedaży (1 - string, 2 - integer, 3 - float, 4 - combobox, 5 - radiobutton, 6 - checkbox, 7 - image (base64Binary), 8 - text (textarea), 9 - datetime (Unix time), 13 - date). Jeżeli zaś inną metodę, to sprawdź w dokumentacji, z tego co pamiętam były zwracane typy pól jakie są wymagane Ten post edytował BaN 16.05.2012, 23:14:27 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 4 Dołączył: 25.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem dokładnie jaką metodę webAPI Allegro wywołujesz, ale Allegro przekazuje również dane o typie pól formularzy. Jeżeli wywołujesz doGetSellFormFieldsForCategory, to zgodnie z dokumentacją: Jeżeli zaś inną metodę, to sprawdź w dokumentacji, z tego co pamiętam były zwracane typy pól jakie są wymagane O kurde faktycznie. Nie zauważyłem wcześniej, bo kopiowałem po części kod już z innej funkcji. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 01:13 |