Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> widoczny/niewidoczny div, alternatywa dla getElementById
fiszol
post
Post #1





Grupa: Zarejestrowani
Postów: 452
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


  1. <script type="text/javascript">
  2. <!--
  3. function blink(id)
  4. {
  5. document.getElementById(id).style.display = (document.getElementById(id).style.display == "none") ? "block" : "none";
  6. }
  7. -->
  8.  
  9. <a href="java script:blink('tha-form')">pokaz / ukryj</a>
  10. <div id="tha-form" style="display:none">troche jestem, troche mnie nie ma</div>


Wszystko by było super gdyby nie to że chcem w diva wsadzić formularz który będzie wyśiwetlanie kilka razy na stronie (dodaj komentarz do newsa), a jak wiadomo użyty id zawsze musi być unikalny, jak rozwiązać ten problem?


--------------------
\o/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
jarekh
post
Post #2





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 4.06.2007

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


Aby zrobic cos na wielu elmentach mozna zrobic tak:
  1. var elements = document.getElementsByTagName('div');
  2. for (var i=0;i<elements.length;i++)
  3. {
  4. if(elements[i].getAttribute('rel')=='formularz'){
  5. elements[i].style.display = (elements[i].style.display == "none") ? "block" : "none";
  6. }
  7. }
  8.  
  9. <div rel='formularz'>pierwszy</div>
  10. <div rel='formularz'> drugi</div>


Ten post edytował jarekh 20.06.2007, 05:41:52


--------------------
Go to the top of the page
+Quote Post
fiszol
post
Post #3





Grupa: Zarejestrowani
Postów: 452
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


wsadzam to w funkcje i zwija/rozwija wyszstkie divy o podanym w funkcji relu za jednym kliknięciem, co raczej jest nie korzystne bo w moencie gdy ktoś będzie chciał wyrazić opinię na temat newsa X otworzy przy okazji divy z formularzami do newsów Y i Z...

  1. <script type="text/javascript">
  2. <!--
  3. function blink()
  4. {
  5. var elements = document.getElementsByTagName('div');
  6. for (var i=0;i<elements.length;i++)
  7. {
  8. if(elements[i].getAttribute('rel')=='formularz')
  9. {
  10. elements[i].style.display = (elements[i].style.display == "none") ? "block" : "none";
  11. }
  12. }
  13. }
  14. </script>
  15. <a href="#" onclick="java script:blink();">pierwszy</a>
  16. <div rel='formularz'>pierwszy</div>
  17. <a href="#" onclick="java script:blink();">drugi</a>
  18. <div rel='formularz'> drugi</div>


Ten post edytował fiszol 20.06.2007, 08:31:36


--------------------
\o/
Go to the top of the page
+Quote Post
revyag
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


Nadaj każdemu divowi id, umieść w nich formularze i przekazuj to id do funkcji i ustawiaj display.

  1. <a href="#" onclick="java script:blink('form1');">pierwszy</a>
  2. <div id="form1"></div>


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

------
Go to the top of the page
+Quote Post
fiszol
post
Post #5





Grupa: Zarejestrowani
Postów: 452
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


Myślałem o tym, ale przecież newsy bedą wyciągane z bazy danych w różnych ilościach, np 10 czy nawet 30, zależnie od preferencji użytkownika, wyszukiwania i takich tam

dorzucić jedną zmienną do pętli to nie problem, ale mam wątpliwości co do tego rozwiązania bo:
te ide nie będą zdefiniowane w stylu, wobec czego przypisywanie divom id które fizycznie nie istnieje nie będzie chyba specjalnie poprawne ( a może zadeklorwać id na zapas w stylu ?)

druga sprawa - id winny być przypisywane do elementów unikalnych, czy div z ukrytym forumularzem wyświetlonym x razy jest unikalny? samo nadanie unikalnego id nie uczynia diva unikalnym (racja ?) imho to jak wyciągnąć dwa papierochy z paczki, jednego oddać koledzie i twierdzić że oba są różne.


--------------------
\o/
Go to the top of the page
+Quote Post
nospor
post
Post #6





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




NIe bardzo wiem w czym widzisz problem.
Do każdego newsa smażysz tego diva z formem. Dla diva nadajesz id, np. jakisprzedrostek_idNewsa i juz masz uniklane ID niezależnie od liczby newsów. Jak ktoś chces skomentować dany news to pokazuje mu się div z formem dla tego newsa.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
fiszol
post
Post #7





Grupa: Zarejestrowani
Postów: 452
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


Problem leży w tym że nie jestem pewien poprawności tego rozwiązania, wiem że jest wygodnie i prosto, przez każdy validator przejdzie również, ale jak to będzie wyglądać np w oczach jakiegoś guru od css ?

W każdym razie załóżmy że decyduje się na te id, definiować je "na zapas" w css?

@nospor or revyag, jak możesz, przenieś temat piętro wyżej bo w zasadzie nie rozważam już tutaj JS tylko poprawność takiego zastosowania divów

Ten post edytował fiszol 20.06.2007, 09:22:01


--------------------
\o/
Go to the top of the page
+Quote Post
nospor
post
Post #8





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




Cytat
W każdym razie załóżmy że decyduje się na te id, definiować je "na zapas" w css?
No teraz zglupialem. CZemu chesz definiować te ID w css? Poco ci to do szczęścia potrzebna? Wybacz, nie rozumiem smile.gif

Cytat
@nospor or revyag, jak możesz, przenieś temat piętro wyżej bo w zasadzie nie rozważam już tutaj JS tylko poprawność takiego zastosowania divów
done


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
fiszol
post
Post #9





Grupa: Zarejestrowani
Postów: 452
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


wpakowałem te id i teraz już głupieje:
http://gormenghast.pl/fg/

górny nav "blinkuje" jak trza (czerwony link asd pod logo), link "komentarze" już nie, mimo że wywołowany identycznie

jakieś pomysły?

//bez komentarza:
onlick zamiast onclick, 3 godziny....

Ten post edytował fiszol 20.06.2007, 15:12:25


--------------------
\o/
Go to the top of the page
+Quote Post
nospor
post
Post #10





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




Cytat
onlick zamiast onclick, 3 godziny....
hehe, wlasnie przed chwilą po minucie na twej stronie tez to zauwazylem winksmiley.jpg


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
fiszol
post
Post #11





Grupa: Zarejestrowani
Postów: 452
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


zawsze jak zarwę noc to głupoty na klawie wklepuje smile.gif a client-side głupoty mają mała wadę - nic ich nie raportuje


--------------------
\o/
Go to the top of the page
+Quote Post
gekon
post
Post #12





Grupa: Zarejestrowani
Postów: 614
Pomógł: 7
Dołączył: 10.11.2003
Skąd: Rzeszów/Kraków

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


Cytat
a client-side głupoty mają mała wadę - nic ich nie raportuje


Firebug pod Firefoxa.


--------------------
Pokaż kod = Pokaż CAŁY kod, najlepiej działający na jakimś serwerze.
Fanatycy | glazar.info | semantyka | HTML i XHTML FAQ
Go to the top of the page
+Quote Post
fiszol
post
Post #13





Grupa: Zarejestrowani
Postów: 452
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


mam, nie wychwycił tego


--------------------
\o/
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 Aktualny czas: 20.08.2025 - 06:02