Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ajax][jquery] Wykonanie funkcji po Ajaxie
Forum PHP.pl > Forum > Przedszkole
Teodor0
Cześć!
Problem: funkcja niżej nie działa po wykonaniu Ajax'a
  1. $(document).ready(function() {
  2. $('tr:contains("Oczekujące")').css( "background-color", "#E4F1F6" );
  3. $('tr:contains("Rozpoczęte")').css( "background-color", "#82b74b" );
  4. $('tr:contains("W trakcie")').css( "background-color", "#87bdd8" );
  5. $('tr:contains("Zakończone")').css( "background-color", "#ffcc5c" );
  6.  
  7. $('td:contains("WYSOKI")').addClass("blink pWysoki");
  8. $('td:contains("ŚREDNI")').addClass("pSredni");
  9. $('td:contains("NISKI")').addClass("pNiski");
  10. });



Ajax:

  1. function showUser(str) {
  2. if (str == "") {
  3. return;
  4. } else {
  5. if (window.XMLHttpRequest) {
  6. // code for IE7+, Firefox, Chrome, Opera, Safari
  7. xmlhttp = new XMLHttpRequest();
  8. } else {
  9. // code for IE6, IE5
  10. xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  11. }
  12. xmlhttp.onreadystatechange = function() {
  13. if (this.readyState == 4 && this.status == 200) {
  14. document.getElementById("txtHint").innerHTML = this.responseText;
  15. }
  16. };
  17. xmlhttp.open("GET","gettable.php?q="+str,true);
  18. xmlhttp.send();
  19. }
  20. }
  21.  



gettable.php :
  1. $q = intval($_GET['q']);
  2.  
  3. if($q == 1) {
  4. $sql="SELECT * FROM zadania WHERE dokogo='".$_SESSION['valid_user']."' ORDER BY id DESC";
  5. $result=mysqli_query($conn,$sql);
  6. }elseif($q == 2) {
  7. $sql="SELECT * FROM zadania WHERE dokogo='".$_SESSION['valid_user']."' AND status='OCZEKUJĄCE' ORDER BY id DESC";
  8. $result=mysqli_query($conn,$sql);
  9. }elseif($q == 3) {
  10. $sql="SELECT * FROM zadania WHERE dokogo='".$_SESSION['valid_user']."' AND status='W trakcie' ORDER BY id DESC";
  11. $result=mysqli_query($conn,$sql);
  12. }elseif($q == 4) {
  13. $sql="SELECT * FROM zadania WHERE dokogo='".$_SESSION['valid_user']."' AND status='Zakończone' ORDER BY id DESC";
  14. $result=mysqli_query($conn,$sql);
  15. }else{
  16. $sql="SELECT * FROM zadania WHERE dokogo='".$_SESSION['valid_user']."' ORDER BY id DESC";
  17. $result=mysqli_query($conn,$sql);
  18. }
  19.  
  20. printf (
  21. "
  22. <p class=\"wiersz\" style=\"padding-top: 3px\">Kliknij na rekord by rozwinąć opis</p>
  23. <table class=\"table table-striped listaZad\">
  24. <thead class=\"thead-dark\">
  25. <tr>
  26. <th scope=\"col\">Nr</th>
  27. <th scope=\"col\">Od kogo</th>
  28. <th scope=\"col\">Kiedy</th>
  29. <th scope=\"col\">Temat</th>
  30. <th scope=\"col\">Priorytet</th>
  31. <th scope=\"col\">Status</th>
  32. </tr>
  33. </thead>
  34. <tbody>" );
  35.  
  36. $p = 0;
  37. $not_null=mysqli_num_rows($result);
  38. if($not_null > 0){
  39.  
  40. while($row = $result->fetch_array())
  41. {
  42. $rows[] = $row;
  43. }
  44.  
  45. foreach($rows as $row)
  46. {
  47. $p++;
  48.  
  49. //W środku printf zawarty jest formularz który obsługiwany jest przez zadania_status.php do ustawiania statusu zadań. Formularz znajduję się pod częścią "rozwijalną".
  50. printf ("<tr data-toggle=\"collapse\" data-target=\"#colaps".$p."\" reference=\"".$p."\" style=\"cursor: pointer\">
  51. <th scope=\"row\">".$p."</th>
  52. <td>".$row['user']."</td>
  53. <td>".$row['dodano']."</td>
  54. <td>".$row['tytul']."</td>
  55. <td>".$row['priorytet']."</td>
  56. <td class=\"colorState\">".$row['status']."</td>
  57. </tr>
  58. <tr>
  59. <td colspan=\"6\" class=\"hiddenRow\">
  60. <div id=\"colaps".$p."\" class=\"collapse\"><p style=\"font-size:15px; font-family:Roboto; padding-top:10px; padding-left:10px\">".$row['opis']."</p>
  61. <p>
  62. <hr></hr>
  63. <form action=\"zadania_status.php\" method=\"post\">
  64. <div class=\"form-group\">
  65. <center>
  66. <input type=\"hidden\" name=\"id_zadania\" value=\"".$row['id']."\" />
  67. <input name=\"status_zad\" type=\"submit\" class=\"btn btn-success btn-sm\" value=\"Rozpoczęte\">
  68. <input name=\"status_zad\" type=\"submit\" class=\"btn btn-primary btn-sm\" value=\"W trakcie\">
  69. <input name=\"status_zad\" type=\"submit\" class=\"btn btn-warning btn-sm\" value=\"Zakończone\">
  70. <input name=\"status_zad\" type=\"submit\" class=\"btn btn-danger btn-sm\" value=\"Usuń\">
  71. </center>
  72. </div>
  73. </form>
  74. </p>
  75. </div>
  76. </td>
  77. </tr>"
  78. );
  79. }
  80. }
  81.  
  82. printf ( "
  83. </tbody>
  84. </table>
  85. <button class=\"btn btn-primary\" id=\"rozwin\">Wczytaj więcej</button>
  86. <button class=\"btn btn-primary\" id=\"zwin\">Zwiń wszystko</button>
  87. <p style=\"padding-top:40px\"></p>
  88. <hr></hr>
  89. <a href=\"zadania.php\">
  90. <center><button type=\"button\" class=\"btn btn-success\">Kliknij by odświeżyć</button></center>
  91. </a>
  92. ");
  93.  
  94. mysqli_free_result($result);
  95. mysqli_close($conn);


No i Ajax wywoływany jest na divie txtHint, to poczatek mojego pliku, skrypty są PO NIM.
  1. <form>
  2. <select name="users" onchange="showUser(this.value)">
  3. <option value="">Sortuj według:</option>
  4. <option value="1">Wszystkie</option>
  5. <option value="2">Oczekujące</option>
  6. <option value="3">W trakcie</option>
  7. <option value="4">Zakończone</option>
  8. </select>
  9. </form>
  10.  
  11. <div class="container">
  12. <div class="row">
  13. <div id="txtHint" class="col-sm">
  14.  
  15. </div>
Pyton_000
Nie działa bo wykonuje się to tylko 1x przy wczytaniu strony.

Zapisz sobie cały kod wew Ready do funkcji a następnie odpali 1x przy Ready i za każdym razem w success w Ajax
trueblue
A po co w ogóle ta funkcja w JS, skoro klasy i style (a zamiast styli inline również klasy) możesz nadać już na poziomie PHP?
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.