Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Ukrywanie i odkrywanie kolumny w tabeli
Flake
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 18.03.2010

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


Witam,
Muszę do istniejącej już (generowanej automatycznie) tabeli dorobić opcję z pokazywaniem i chowaniem się jednej kolumny za pomocą jednego guzika. Podejrzewam, że trzeba zmienić styl z np. display: none; na display: table-cell za pomocą JavaScript - Niestety nie mam pojęcia jak odwołać się do konkretnej kolumny za pomocą jednego guzika.

Na internecie znalazłem kilka przykładów ale wszystkie były 'statyczne' - więc odwoływały się przez ID

  1. .doukrycia {display: none;}
  2.  
  3. ...
  4.  
  5. <label><input type="submit" value="Pokaz/Ukryj kolumny" /></label>
  6. <table border="1">
  7. <tr>
  8. <th>ID</th>
  9. <th class="doukrycia">Produkt</th>
  10. <th>Cena</th>
  11. </tr>
  12. {foreach from=$produkty item=produkty}
  13. <tr>
  14. <td>{$id}</td>
  15. <td class="doukrycia">{$produkt}</td>
  16. <td>{$cena}</td>
  17. </tr>
  18. {/foreach}
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Flake
post
Post #2





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 18.03.2010

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


Prawie działa ^^ - niestety znika/pojawi się tylko pierwsza komórka danej kolumny - to chyba przez to, że tabela jest tworzona dynamicznie ponieważ na statycznym przykładzie wszystko działa pięknie - a gdy wrzucam to do php to element TH w ogóle się nie pojawia a TD tylko w pierwszym wierszu - jakieś pomysły jak to naprawić?

  1.  
  2. <label><input type="submit" value="Ukryj produkty" onclick="ukryj()" /></label><label><input type="submit" value="Pokaz produkty" onclick="odkryj()" /></label>
  3.  
  4. <table id="test" class="tabela" border="0" cellspacing="0">
  5. <tr>
  6. <th>nr dokumentu</th>
  7. <th style="display: none">produkty</th>
  8. <th>użytkownik</th>
  9. </tr>
  10.  
  11. {foreach from=$produkty item=produkty}
  12. <tr class="{cycle values=',odd-row'}{$tr_class}">
  13. <td>{$produkty->nr_dokumentu}</td>
  14. <td style="display: none">
  15. <table cellspacing="0" class="produkty">
  16. {foreach from=$proukty->produkty item=produkt}
  17. <tr>
  18. <td>{$produkt->nazwa_prod|escape}</td>
  19. <td>{$produkt->ilosc} szt.</td>
  20. </tr>
  21. {/foreach}
  22. </table>
  23. </td>
  24. <td>{$produkty->username}</td>
  25. </tr>
  26. {/foreach}


funkcje w JS
  1. function ukryj() {
  2. var tr = document.getElementById('test').getElementsByTagName('tr'),td;
  3.  
  4. for(var i=1; td = tr[i++]; ){
  5. td.getElementsByTagName('td')[2].style.display = 'none';
  6. }
  7.  
  8. th = tr[0];
  9. th.getElementsByTagName('th')[2].style.display = 'none';
  10. }
  11.  
  12. function odkryj() {
  13. var tr = document.getElementById('test').getElementsByTagName('tr'),td;
  14.  
  15. for(var i=1; td = tr[i++]; ){
  16. td.getElementsByTagName('td')[2].style.display = 'table-cell';
  17. }
  18.  
  19. th = tr[0];
  20. th.getElementsByTagName('th')[2].style.display = 'table-cell';
  21. }


edit: ok już wiem, że problemem jest zagnieżdżona tabelka - tylko nie wiem jak 'wyłączyć' ją z działania funkcji - jakieś pomysły?

Ten post edytował Flake 18.03.2010, 15:11:58
Go to the top of the page
+Quote Post

Posty w temacie


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: 12.10.2025 - 00:12