Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: NyssNiceForm
Forum PHP.pl > Inne > Oceny
envp
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 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... 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
ikioloak
Opera 9.01 linux- nie dzialaja checkboxy i radiobuttony
envp
Kurde działa, tylko trzeba na labele wcisnąć sad.gif Niestety nie znam sie na js, moze troche poszperam to to przerobie. Korzystałem z Designu badboy'a...
dr_bonzo
Kurde nie! Checkboxy/radiobutony maja byc klikalne i kropka smile.gif (razem z labelami)
Przeciez to w samym htmlu da sie zrobic (<label>)
envp
No nie za bardzo, ale pokombinuje...

Witam, poprawiłem działanie CheckBox i Radio miłego korzystania, pozdrawiam smile.gif
Strzałek
Taki mały offtopic.

http://riddle.jogger.pl/2006/10/10/rece-pr...nia-formularzy/
envp
tak, czytałem, klasa jest dla tych, którzy chcą jej używać winksmiley.jpg
Athlan
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ć tongue.gif Kolejną rzeczą, która mi siępodoba to przycisk submit. Piękny hoover - zakochałem się w nim 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
PiotrLegnica
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 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).
envp
Na razie zawieszam jakiekolwiek poprawki w tym projekcie na rzecz NyssFramework.
Athlan
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 smile.gif

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

Pozdrawiam, Athlan smile.gif
eai
Podoba mi się. Ale raczej nie korzystam z takich rzeczy.
nospor
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 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
envp
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 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.
nospor
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 winksmiley.jpg
Athlan
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 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ę ? "> 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ć tongue.gif , ale fajnie że się wypowiadają, mozna odkryć coś nowego 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ć smile.gif

Pozdrawiam, Athlan smile.gif
nospor
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 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 winksmiley.jpg
Athlan
Cytat
ale ja sie nie chce klocic


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

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 smile.gif
nospor
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 winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.