Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]->[dom] Przekazywanie zmiennych, Jak prawidłowo chować dane i flagi do użycia w DOM
Coach
post 8.09.2009, 08:22:07
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 8.09.2009

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


Problem być może jest trywialny.

Chodzi o to, iż często spotykam się z sytuacją, gdzie muszę z poziomu php przekazać sobie kilka zmiennych opisujących dany znacznik, które potem będę używał w js.

Przykładowo:
- mam pole input i chcę przekazać informacje o sposobie walidacji (typ_walidacji, min_dlugosc, max_dlugosc, komunikat_bledu).
- mam pole select i zestaw opcji, chcę w opcjach schować informację umożliwiające po naciśnięciu przycisku ułożenie ich w drzewko.

I tu pytanie - jaki kod html stworzyć w php, by te zmienne sobie schować, nie naprodukować zbędnego kodu html albo nie spowolnić zbytnio strony, i by były dostępne z poziomu DOM we wszystkich przeglądarkach?

Aktualnie dane serializuję i chowam w rzadko używanym lang, natomiast denerwuje mnie używanie czegoś niezgodnie z przeznaczeniem.
Chowanie zmiennych w polu #id mija się z celem i przeznaczeniem identyfikatora.
Dodawanie class jest dobre na flagi, ale nie na stringi, do tego może narobić bałaganu w cssach.
Produkowanie dla każdego znacznika sparowanego hiddena to przsadna nadmiarowość.

Problem, sądzę, jest na tyle powszechny, że musi istnieć prawidłowe i dedykowane jego rozwiązanie, bez zbędnej kombinatoryki.

Będę wdzieczny za sugestie.
Go to the top of the page
+Quote Post
Master Pain
post 8.09.2009, 08:48:26
Post #2





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 5.04.2007
Skąd: Jarocin

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


Zrób sobie 'namespace' (przestrzeń nazw, umownie oczywiście, bo chodzi o lekką modyfikację nazewnictwa klas dla uniknięcia konfliktu z klasami odpowiedzialnymi za wygląd strony) dla klas, np. 'desc-min-width', gdzie 'desc' to właśnie ta umowna przestrzeń nazw. Tak np. sprawę załatwia lightbox w jQuery, ma swoje 'przedrostki' w nazwach klas, zatem można uznać to za prawidłowe i dedykowane rozwiązanie smile.gif

Pozdrawiam!
Go to the top of the page
+Quote Post
Coach
post 8.09.2009, 10:04:04
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 8.09.2009

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


Ok, czyli jeśli chcę zapisać sobie informację, iż typ walidacji to znaki alfanumeryczne mogę nadać klasę desc-alphanr. To ok i użyteczne
bo od razu daje użyteczny i zależny od typu selektor do przyszłych zastosowań.

Jeśli chcę zapisać, że minimalna długość to 5 znaków to użyję klasy desc-min_5, by się do tego dobrać muszę wyciągnąć całe className,
explodować klasy, wyszukać tę zaczynającą się na desc-min, explodować po _ i dopiero mam wartość - tu już trochę roboty jest.

Zmienna string (po odpowiednim podmienieniu spacji i znaków specjalnych) da już klasę-potworka.

Jak nagromadzenie klas w elemencie wpłynie na wydajność? Prędkość interpretacji css, jQuery które musi
te wszystkie nadmiarowe selektory sprawdzać, to może nieco spowolnić?

Go to the top of the page
+Quote Post
Master Pain
post 8.09.2009, 10:07:37
Post #4





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 5.04.2007
Skąd: Jarocin

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


Ale ten explode po klasach robisz tylko raz i masz wszystko w tablicy. W czym problem winksmiley.jpg A wydajność... no cóż, sam chciałeś takie rozwiązanie. Trochę nie na temat, ale nie lepiej użyć Zend_Form ?

Pozdrawiam!
Go to the top of the page
+Quote Post
erix
post 8.09.2009, 15:13:23
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
I tu pytanie - jaki kod html stworzyć w php, by te zmienne sobie schować, nie naprodukować zbędnego kodu html albo nie spowolnić zbytnio strony, i by były dostępne z poziomu DOM we wszystkich przeglądarkach?

JSON. Do jQuery był jeszcze taki plugin, który przechowywał metadane w atrybutach class. ;]

Moim zdaniem, najlepszy tu będzie JSON - interplatformowy, radzą sobie wszystkie przeglądarki, PHP również.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 27.06.2025 - 06:48