Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jquery i wyświetlanie wierszy w tabeli po kliknięciu
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
pejot
Witam,

mam problem bo chcę zrobić coś takiego aby po kliknięciu na link/guzik pokazywała mi się ukryta tabela.

Mój kod wygląda następująco:

  1. <script type="text/javascript">
  2. $(document).ready(function() {
  3. $('.slickbox').hide();
  4. $('#slick-show').click(function() {
  5. $('.slickbox').show();
  6. return false;
  7. });
  8. $('#slick-hide').click(function() {
  9. $('.slickbox').hide();
  10. return false;
  11. });
  12. $('.slick-toggle').click(function() {
  13. $('.slickbox').toggle();
  14. return false;
  15. });
  16. });
  17. </script>


  1. <div id="specyfikacja_list">
  2. <table class="table table-hover">
  3. <tr>
  4. <th>ID</th>
  5. <th>Kod</th>
  6. <th>Nazwa</th>
  7. <th>Imię</th>
  8. <th>Nazwisko</th>
  9. <th>Firma</th>
  10. <th>Flota</th>
  11. <th>Status</th>
  12. <th>Więcej</th>
  13. </tr>
  14. <tr>
  15. </thead>
  16. <tr>
  17. <td>1</td>
  18. <td>1</td>
  19. <td>qaa</td>
  20. <td>aaaaa</td>
  21. <td>Jaaaamroz</td>
  22. <td>aHost</td>
  23. <td>OPEK</td>
  24. <td> <span class="label label-info">A</span> </td>
  25. <td><a href="#" class="slick-toggle">Kliknij</a></td>
  26. </tr>
  27. <tr >
  28. <td class="slickbox" colspan="10">
  29. <p><b>Państwo :</b> USA</p>
  30. <p><b>Miasto :</b> New York</p>
  31. <p><b>Państwo :</b> USA</p>
  32. <p><b>Ul. :</b> Bay Pkw 22123 / 12 </p>
  33. <p><b>Zip :</b> 21-211</p>
  34. <p><b>Tel :</b> 8112345678</p>
  35. <p><b>Fax :</b> 8112345678</p>
  36. <p><b>Kom :</b> 8112345678</p>
  37. <p><b>www :</b> wp.pl</p>
  38. <p><b>Email :</b> sasa@da.pl</p>
  39. <p><b>Info :</b> użytkownicy, szukający tego co Ty, oglądali</p>
  40. </td>
  41. </tr>
  42. </tbody>
  43. <tr>
  44. <td>2</td>
  45. <td>2</td>
  46. <td>zaqos</td>
  47. <td>Anna</td>
  48. <td>Martyniak</td>
  49. <td>Local org nylonix</td>
  50. <td>DHL</td>
  51. <td><span class="label label-important">B</span></td>
  52. <td><a href="#" class="slick-toggle">Kliknij</a></td>
  53. </tr>
  54. <tr>
  55. <td class="slickbox" colspan="10">
  56. <p><b>Państwo :</b> Polska</p>
  57. <p><b>Miasto :</b> Lublin</p>
  58. <p><b>Państwo :</b> Polska</p>
  59. <p><b>Ul. :</b> Leśna 13 </p>
  60. <p><b>Zip :</b> 21-211</p>
  61. <p><b>Tel :</b> 8112345678</p>
  62. <p><b>Fax :</b> 8112345678</p>
  63. <p><b>Kom :</b> 8112345678</p>
  64. <p><b>www :</b> wp.pl</p>
  65. <p><b>Email :</b> sasa@da.pl</p>
  66. <p><b>Info :</b> użytkownicy, szukający tego co Ty, oglądali</p>
  67. </td>
  68. </tr>
  69. </tbody>
  70.  
  71.  
  72. </div>


Po kliknięciu na link ( linia 27,54) pojawiają mi się ukryte tabele ale wszystkie na raz co jest złe ale logiczne.

Sytuacja wygląda tak, że każdy <tr> jest generowany automatycznie i teraz są dwa ale w przyszłości będą setki.

Proszę o pomoc jak to rozwiązać bo brak mi doświadczenia w takich sytuacjach.
lukasz1985
Jeśli skrypt ma wyglądać w ten sposób że dla każdej osoby jest osobna tabela to dla każdej osoby musi być osobny przełącznik, a nie tak jak teraz - jeden przełącznik dla całej listy.

Najlepiej zrobić to dodając dodatkową kolumnę z przyciskiem "przełącz" .

Przycisk powinien mieć wygenerowane id, najlepiej skonstruowane ze stringu i id osoby, np: "toggle_" i n; co dałoby np dla osoby o id 5 link w postaci:
"<a href="$" id="toggle_5" class="slick-toggle">.

Natomiast komorka tabeli <td class="slickbox"></td> powinna mieć odpowiednio nadane id, np:
<td class="slickbox" id="slickbox_5">

Wtedy można w JS zrobić coś takiego:
[JAVASCRIPT] pobierz, plaintext
  1.  
  2. $('.slick-toggle').click(function() {
  3.  
  4. var id = $(this).attr("id").split("_")[1];
  5. var td_id = "#slickbox_" + id;
  6. $(td_id).toggle();
  7. return false;
  8. });
  9.  
[JAVASCRIPT] pobierz, plaintext

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-2025 Invision Power Services, Inc.