![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%)
|
Czy ktoś ma pomysł na działanie takowej funkcji. Przydałaby mi się ona przed dodawaniem wielu pól numerycznych gdzie nie chce rzutowania na INT czyli zmieniania pustej wartości na 0. |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 387 Pomógł: 66 Dołączył: 31.03.2005 Skąd: Kielce Ostrzeżenie: (0%)
|
Czy ktoś ma pomysł na działanie takowej funkcji. Przydałaby mi się ona przed dodawaniem wielu pól numerycznych gdzie nie chce rzutowania na INT czyli zmieniania pustej wartości na 0. W ogóle nie wiem o czym piszesz, bo funkcja jest gotowa, ja jednak bym to troszki uprościł:
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%)
|
Uproszczenie zaburza funkcjonalność - ma zmieniać tylko wartości puste typu string na NULL, wartość zero jest już poprawna i nie chce jest NULLować.
Twoja funkcja nie zadziała gdy przekażemy argumenty w takiej postaci jak pokazałem (tylko wartościami), a trzeba przekazać tablicę asocjacyjną, a to już wydaje mi się zbyt czasochłonne i wolę już to obsługiwać wtedy bez funkcji. Ten post edytował markonix 13.10.2012, 21:50:13 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%)
|
|
|
|
|
Post
#5
|
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
A dlaczego przy porównaniu nie sprawdzisz typu? $zmienna == '' i $zmienna === '' to dwie nieco inne rzeczy i warto nieraz z tego rozróżnienia korzystać.
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 387 Pomógł: 66 Dołączył: 31.03.2005 Skąd: Kielce Ostrzeżenie: (0%)
|
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%)
|
thek - dzięki za uwagę, faktycznie tutaj jest do dla mnie wręcz obowiązkowe (dam potem pomógł żeby nie oznaczać tematu (IMG:style_emoticons/default/wink.gif) )
darko - nie rozumiem zupełnie w czym mi to ma pomóc.
Chce po prostu ubrać powyższe w jakąś uniwersalną funkcję (helper) bo czuje, że nie raz mi się to jeszcze przyda. Ten post edytował markonix 13.10.2012, 22:25:08 |
|
|
|
Post
#8
|
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
Darko podrzucił Ci sposób iteracji przez tablice. Ja ze swojej strony ciutkę bym zmodyfikował formularz. Pamiętaj że w html5 weszło definiowanie typu, które śmiało możesz wykorzystać i tu. W końcu jako osoba, która tworzy/generuje formularz, możesz oprzeć się o wszystko co tam pchniesz. A gdybyś tak zdefiniował typ inputa, to czemu by tego nie wykorzystać? Walisz sobie <input type="number" /> (defaultowo, jeśli przeglądarka nie obsługuje, uznaje nowe typy za zwykły text, więc masz fallback) i przy walidacji możesz użyć ctype_digit, is_int czy inne takie, a wtedy zareagować. Zrób więc helper formularza.
|
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%)
|
Niestety widoki to nie moja działka tak więc wolałbym serwerowa rozwiązanie (IMG:style_emoticons/default/wink.gif)
Poza tym firefox nawet numbersów jeszcze nie obsługuje.. |
|
|
|
Post
#10
|
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
Ale ja mówię o serwerowej wersji. Widok jest generowany na podstawie tego, co dajesz na wejściu do generatora formularza. A typ można przecież określić jako parametr elementu formularza. Zresztą najczęściej wszelkie generatory wymagają go, by określić z jakim typem pola mamy do czynienia ( input wszak może już teraz przyjąć: hidden, radio, text, checkbox). Dodanie kolejnych to nie problem. Nowe typy jednakże są obsługiwane jedynie client-side i po stronie serwera też muszą być walidowane. Teraz wystarczy jedynie zdefiniować abstrakcyjną klasę bazową Field z paroma własnościami i metodami, z której będziesz dziedziczył tworząc textarea czy input. Jedną z własności abstrakcyjnych będzie zapewne type i metody setType, getType, isValid. To właśnie w tej ostatniej sobie walidację ładnie na podstawie ustalonej dla danego pola formularza własności Type sprawdzisz. Jak? Z requesta bindujesz do zdefiniowanego formularza wartości z $_POST i przeprowadzasz walidację. Jeśli jest Ok, to zapis i forward na jakąś stronę... Jeśli nie, bindujesz form do widoku i wyświetlasz. Zauważ, że tutaj wszystko się dzieje server-side. Nic nie robisz po stronie klienta. A sam formularz to byłby zapewne kolejny obiekt, który trzymałby po prostu obiekty klas dziedziczonych po Field. To co chcesz zrobić, byłoby albo osobnym obiektem, albo związane z obiektem kasy Validation, jeśli taką przewidujesz.
Powód edycji: [thek]: Taka informacja... input type="number" obsługuje Opera i Chrome. Fx pewnie niedługo dołączy.
|
|
|
|
![]() ![]() |
|
Aktualny czas: 18.12.2025 - 03:09 |