Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery] automatyczna tabela z mysql + ukrywanie i chowanie danych
marczak
post
Post #1





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 1.03.2007

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


Witam.

Mam pewnien problem ze stworzeniem dynamicznej tabeli pobranej z bazy mysql.

Chcę mieć taką strukutórę znaczników:

  1.  
  2.  
  3. <table id="work">
  4.  
  5. <tr>
  6. <th>ID</th>
  7. <th>Tytył pracy</th>
  8. <th>Promotor</th>
  9. <th>Krótki opis</th>
  10. <th></th>
  11. </tr>
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19. <tr>
  20. <td>:praca:</td>
  21. <td>:tytul:</td>
  22. <td>:promotor:</td>
  23. <td>:opis:</td>
  24. <td><div class="arrow"></div></td>
  25.  
  26. </tr>
  27. <tr>
  28. <td colspan="5">
  29.  
  30. <a href="#">Rezerwacja</a>
  31. <h4>Pełny opis</h4>
  32.  
  33. <ul>
  34. <li>Tytył pracy : Testowy Tytuł</li>
  35. <li>Promotor pracy: Testowy promotor</li>
  36. <li>Pełny opis: </br>asd</li>
  37. </ul>
  38.  
  39. </td>
  40. </tr>
  41.  
  42.  
  43. </table>


Następnię używam jquery aby chować to co znajduję się wewnątrz
  1. <td colspan="5">


Używając najtępującego kodu:
  1.  
  2. $(document).ready(function(){
  3.  
  4.  
  5. $("#work tr:odd").addClass("odd");
  6. $("#work tr:not(.odd)").hide();
  7. $("#work tr:first-child").show();
  8.  
  9. $("#work tr.odd").click(function(){
  10. $(this).next("tr").toggle();
  11. $(this).find(".arrow").toggleClass("up");
  12. });
  13.  
  14.  


I gdy mam statyczną tabelę taką jak wyżej to wszystko ładnie działa. Problem pojawia się gdy chcę sobię tą tabelkę zapełnić zawartością z mysql.

Robię to tak:

  1. <?php
  2.  
  3. /*
  4.  * To change this template, choose Tools | Templates
  5.  * and open the template in the editor.
  6.  */
  7. require_once 'function.php';
  8.  
  9.  
  10.  
  11. $con = connection();
  12. $sql = "
  13. SELECT *
  14. FROM praca
  15. ORDER BY id_praca";
  16.  
  17. $result = mysql_query($sql);
  18. $result = formatResult($result);
  19. mysql_close($con);
  20. $JSData=json_encode($result);
  21. echo $JSData;
  22.  
  23.  
  24. ?>


Funkcja zwracająca dane i konwertująca je do jsona. Dane będą pobierane przez jquery i wyświetlane na stronie.
Robię to tak:
  1. $.ajax({
  2. type: "POST",
  3. url: "LoadTable.php",
  4. dataType : 'json',
  5.  
  6. success : function(json) {
  7.  
  8. for(var i=0; i<json.length; i++){
  9.  
  10. var id = json[i]['id_praca'];
  11. var promotor = json[i]['id_promotor'];
  12. var tytul = json[i]['tytul'];
  13. var opisS = json[i]['opis_short'];
  14. var opisL = json[i]['opis_long'];
  15. var rezerwacja = json[i]['rezerwacja'];
  16.  
  17. var row = '<tr><td>'+id+'</td><td>'+tytul+'</td><td>'+promotor+'</td><td>'+opisS+'</td><td><div class="arrow"></div></td></tr>';
  18. row = row + '<tr><td colspan="5"><a href="#">Rezerwacja</a><h4>Pełny opis</h4><ul><li>Tytył pracy : Testowy Tytuł</li><li>Promotor pracy: Testowy promotor</li><li>Pełny opis: asda</li></ul></td></tr>';
  19.  
  20.  
  21.  
  22. $('#work').append(row);
  23. }
  24. }
  25. });


Tabela jest tworzona, jednak nie wygląda tak samo jak ta statyczna, chociaż wydaję mi się ze struktura jest identyczna. Po za tym jquery wogóle nie reaguje na zwijanie i rozwijanie dodatkowego wiersza.

Proszę o pomoc.

Ten post edytował marczak 12.12.2011, 22:30:33
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: 24.12.2025 - 09:08