Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> NyssNiceForm, Klasa do obsłuchi formularzy przyjemnych dla oka.
envp
post
Post #1





Grupa: Zarejestrowani
Postów: 359
Pomógł: 1
Dołączył: 16.04.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Witam, napisałem sobie składnik do mojego frameworka. Komponent ten tworzy formularze z nietypowym wyglądem (który zaporzyczyłem od badboy'a). W krótce wejdzie do NyssFramework, jako jeden z helperów(?), a póki co jest napisany tak, że może działać samodzielnie. Plik przykładnowy umieszczony jest w katalogu z samą klasą (index.php).

Aby wszystko działało fajnie i pięknie dodajemy na stronie w sekcji head:

  1. <script language="javascript" type="text/javascript" src="js/niceforms.js"></script>
  2. <style type="text/css" media="screen">@import url(css/niceforms-default.css);</style>


Następnie includujemy sobie klase NyssNiceForm

  1. <?php
  2. require_once('niceform.class.php');
  3. ?>


i dalej jak w przykładzie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Przykładowy Formularz:
http://envp.ovh.org/NyssNiceForm/

oraz sama klasa do pobrania:

NyssNiceForm_v0.1.tar.gz

Mam nadzieję, że klasa się komuś przyda. Jest jeszcze bardzo 'młoda' i pewnie pełna błędów, ale validator ją zatwierdził, moje oko - też więc... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ps. Zapomniałem dodać, ale może ktoś nie zrozumie (choć wątpie)
Jak dajemy:
  1. <?php
  2. $oNiceForm->addElement($oRadio1,'Radio');
  3. ?>

To drugim parameterm jest namespace, w którym klasa sobie dany lement zapisauje - możemy wpisać co kolwiek.

Jeśli są jakieś pytania to : kamil@linux.pl

Ten post edytował envp 22.10.2006, 11:14:10
Go to the top of the page
+Quote Post
ikioloak
post
Post #2





Grupa: Zarejestrowani
Postów: 416
Pomógł: 0
Dołączył: 8.01.2004

Ostrzeżenie: (0%)
-----


Opera 9.01 linux- nie dzialaja checkboxy i radiobuttony
Go to the top of the page
+Quote Post
envp
post
Post #3





Grupa: Zarejestrowani
Postów: 359
Pomógł: 1
Dołączył: 16.04.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Kurde działa, tylko trzeba na labele wcisnąć (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Niestety nie znam sie na js, moze troche poszperam to to przerobie. Korzystałem z Designu badboy'a...
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Kurde nie! Checkboxy/radiobutony maja byc klikalne i kropka (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (razem z labelami)
Przeciez to w samym htmlu da sie zrobic (<label>)
Go to the top of the page
+Quote Post
envp
post
Post #5





Grupa: Zarejestrowani
Postów: 359
Pomógł: 1
Dołączył: 16.04.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


No nie za bardzo, ale pokombinuje...

Witam, poprawiłem działanie CheckBox i Radio miłego korzystania, pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Strzałek
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 384
Pomógł: 6
Dołączył: 11.09.2004
Skąd: Grodzisk Mazowiecki

Ostrzeżenie: (0%)
-----


Taki mały offtopic.

http://riddle.jogger.pl/2006/10/10/rece-pr...nia-formularzy/
Go to the top of the page
+Quote Post
envp
post
Post #7





Grupa: Zarejestrowani
Postów: 359
Pomógł: 1
Dołączył: 16.04.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


tak, czytałem, klasa jest dla tych, którzy chcą jej używać (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Athlan
post
Post #8





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

Ostrzeżenie: (0%)
-----


Słowa krytyki:

No niestety, niceforms zasługują na słowa uznania i krytyki. Ktoś mi kiedyś powiedział "ja się w takie coś nie bawię, bo różne browsery, różnie to widzą". Dopiero teraz zgadzam się z tym w 100 %. Otóż na firefox pola Checkbox i Radio w ogóle nie zmieniają swojego wyglądu, a na IE gubią swoją wysokość i pokazują się "podwójnie" (screen). Podobnie nie podoba mi się pole Select, otóż, wartość pola musi być taka sama jak jego opis - w przycisnym wypadku zostanie źle wyświetlona, gdyusię ją wybierze - dla mnie beznadzieja, zawsze w wawrtośćiach przypisuję ID kategorii a w opisie jej nazwę. Ponadto, jeżeli pole Checkbox zostanie z góry zaznaczone (jest taka opcja w klasie), na IE takowy Checkbox nie otrzymuje obrazka - pusto o.O

Słowa uznania:

Bardzo podoba mi się pole Input text i Textarea. Wpadły mi też w oko bardzo ładne zastosowanie label nad przycistkiem. Jednakże polu Input text brakuje trybu disabled oraz readonly - sam sobie musiałem dopisać (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Kolejną rzeczą, która mi siępodoba to przycisk submit. Piękny hoover - zakochałem się w nim (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) Osobiście używam dwóch komponentów NiceForm'a: przycisku submit i Input text, czasem textarea - pozostałe wymagają dopracowania od strony optymalizacji. Klasy Select używam do wygenerowania zwykłego selecta, podobnie z pozostałymi, których nie wymieniłem.

Moje sugestie:

No na pewno przerobić to uciążliwe pole select, chociaż wiem, że jest trudno, bo JS nie jest w stanie tak łatwo wyciągnąć opisu <option>, tylko jego wartość obj.value, przynajmniej ja o takim czymś nie słyszałem. Dorobić opcję readonly i disabled. Kwestię Radio i Checkboxów pozostawiam do rozpatrzenia. Ogólnie dziękuję za NiceForm'a :* (popracuj nad tym, bo pomysł wypasiony).

Pozdrawiam, Athlan

Ten post edytował Athlan 11.11.2006, 18:33:52
Go to the top of the page
+Quote Post
PiotrLegnica
post
Post #9





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 6.07.2005
Skąd: Legnica

Ostrzeżenie: (0%)
-----


Cytat
No na pewno przerobić to uciążliwe pole select, chociaż wiem, że jest trudno, bo JS nie jest w stanie tak łatwo wyciągnąć opisu <option>, tylko jego wartość obj.value, przynajmniej ja o takim czymś nie słyszałem.

DOM nie gryzie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Kod
options[i].getAttribute('value');

zwróci atrybut value, a
Kod
options[i].firstChild.nodeValue;

zawartość tagu (options to tablica z document.getElementsByTagName).
Go to the top of the page
+Quote Post
envp
post
Post #10





Grupa: Zarejestrowani
Postów: 359
Pomógł: 1
Dołączył: 16.04.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Na razie zawieszam jakiekolwiek poprawki w tym projekcie na rzecz NyssFramework.
Go to the top of the page
+Quote Post
Athlan
post
Post #11





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

Ostrzeżenie: (0%)
-----


Mimo tego nalegam... projekt uważam za bardzo fajny. Ja sie na JS nie znam a chętnie bym pomógł... może ktoś z tego forum się zaangazyje co? Widze, że PiotrLegnica jest w temacie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Dodam coś jeszcze:
http://img329.imageshack.us/img329/7206/ni...mserror1dg6.png

Pozdrawiam, Athlan (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
eai
post
Post #12





Grupa: Zarejestrowani
Postów: 367
Pomógł: 10
Dołączył: 20.05.2005

Ostrzeżenie: (0%)
-----


Podoba mi się. Ale raczej nie korzystam z takich rzeczy.
Go to the top of the page
+Quote Post
nospor
post
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ogolnie idea fajna, formularze ladnie wygladają, ale...
no wlasnie: poco obudowywac to w klase, skoro ta klasa nic nie wnosi? z tego co wypatrzylem to jest tutaj tylko zwykle walenie html na ekran, ktory potem i tak jest przerabiany przez js i css. rownie dobrze moge walnac takiego html z polami forma, podlaczyc ten js i css i powinno byc git. no chyba ze czegos nie dolukalem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Obudowa tego w klasa mialaby sens, jakby tu byla walidacja i wiele innych przydatnych rzeczy, ktore sa w klasach formularzy. Robienie samej klasy tylko po to by dodac pole do forma wydaje mi sie zbednym nadmiarem
Go to the top of the page
+Quote Post
envp
post
Post #14





Grupa: Zarejestrowani
Postów: 359
Pomógł: 1
Dołączył: 16.04.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Chodzi o to, że część pól przerabiana jest przez js na podstawie id więc one muszą być narzucone z góry, poza tym, wygodniej jest budować imho formy tak jak w tym przykładzie, a nie kopiować i wklejać html z css. Tak po krótce to jest tylko automatyzacja czynności copy&paste, która eliminuje pomyłki przy przerabianiu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ps. pozatym zostało stworzone na podstawie niceforms badboy'a, które było w pełni statyczne i nie było możliwości zmiany szerokości choćby żadnego elementu bez ingerencji w obrazki czy też js...
Pozdrawiam, Kamil.

Btw. Rzuciłem, bo myślałem ze komus sie przyda.
Go to the top of the page
+Quote Post
nospor
post
Post #15





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Chodzi o to, że część pól przerabiana jest przez js na podstawie id
Klocic sie nie bede bo ja to tylko pobieżnie przejrzalem, ale zauwazylem, ze ty pol nie pobierasz po id, ale po nazwie pola:
document.getElementsByTagName('select');
document.getElementsByTagName('input');
itd.
czyli ze w zasadzie id pola cie nie obchodzi bo i tak lecisz po wszystkich np. selectach a nie po wybranych dodanych z klasy.

Ale jak mowilem ja to tylko pobieznie przegladalem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Athlan
post
Post #16





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

Ostrzeżenie: (0%)
-----


Cytat
no wlasnie: poco obudowywac to w klase, skoro ta klasa nic nie wnosi?


Nospor, używam NiceForma i powiem... klasa tu jest bardzo ważna. W sumie owszem... możesz się kłócić "po co" ale zapewniem Cię, tak formularz zrobię szybciej od Ciebie i bez żadnych błędów. Oczywiście parę klas musiałem dostosowac do swoich potrzeb, bowiem nie odpowiadały mi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Cytat
czyli ze w zasadzie id pola cie nie obchodzi bo i tak lecisz po wszystkich np. selectach a nie po wybranych dodanych z klasy.


Tutaj chodzi o <label for=" hę ? "> (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) W NiceForms fajnie są zrobione, dlatego też wielki +

Cytat
Ale jak mowilem ja to tylko pobieznie przegladalem


Takich ludzi lubię... umieją się przyznać (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) , ale fajnie że się wypowiadają, mozna odkryć coś nowego (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Tak jak mówiłem parę postów wyżej, parę zmian i projekt jest perfekcyjny... głownie właśnie to pola select i rozbieżności graficzne w inpytach (screen posty wyżej). Jakbym umieał DOM'a to bym pomógł, narazie jednak nie chce mi się w niego zagłębiać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam, Athlan (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #17





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Nospor, używam NiceForma i powiem... klasa tu jest bardzo ważna. W sumie owszem... możesz się kłócić "po co"
ale ja sie nie chce klocic, ja wlasnie chcialem sie dowiedziec "po co", bo po przejrzeniu kodu klasy to nie bylo dla mnie tak oczywiste (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Jakby w tej klasie byla walidacja oraz konkretna obsluga formularzy to by bylo fajnie. a tak co? mam uzywac dwoch klas do jednego formularza? jedna do wygladu druga do obslugi? eeee, nie podoba mi sie to (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Athlan
post
Post #18





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

Ostrzeżenie: (0%)
-----


Cytat
ale ja sie nie chce klocic


echo str_replace('kłócić','pytać','W sumie owszem... możesz się kłócić "po co"');

(IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Jak wyobrażasz sobię validację? do pola dopuszczamy jakieś znaki (np tylko liczby)... robi to JS czy jak? rozwiń myśl bo mówisz ciekawie...

--EDIT--

bo proszę Ciebie... NyssNiceForm jest wykorzystywany do wyświetlenia formularza a nie przetwarzania danych... warto oddzielić te zadania (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Athlan 18.11.2006, 20:19:32
Go to the top of the page
+Quote Post
nospor
post
Post #19





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Jak wyobrażasz sobię validację? do pola dopuszczamy jakieś znaki (np tylko liczby)... robi to JS czy jak? rozwiń myśl bo mówisz ciekawie...

A co tu rozwijac. pole moga byc walidowane pod roznym kotem: integer, data, email, puste, nip, wlasne funkcje walidujace.
Walidacja na poziomie js i serwera

Cytat
NyssNiceForm jest wykorzystywany do wyświetlenia formularza a nie przetwarzania danych... warto oddzielić te zadania
tja, czyli jak chce miec dwie funkcjionalanosci: wyglad i obsluga to musze dwa razy wszystko robic?
ale bez obaw, ja do wygladu uzywam css, a do obslugi wlasnej klasy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 22:46