Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][PHP][jQuery] usuwanie wierszy z bazy danych bez przeladowania strony - powtarzalnosc kodu
Forum PHP.pl > Forum > Przedszkole
wiewiorek
Pytanie umieściłem na końcu, najpierw napiszę o co mi chodzi. smile.gif

Mój plik index.php:
w skrypcie jQuery po kliknięciu w linka usuwającego posta pobieram atrybut href tego linka (czyli: usuwanie.php?id=X) i laduje strone, ktorej adres jest w tym atrybucie href, po czym do elementu o id=labelek1 wsadzam dane przekazane z tego pliku, ktorego adres jest w atrybucie href.

  1.  
  2. <script type="text/javascript">
  3. $('.usun').live('click', function()
  4. {
  5. $.get($(this).attr("href"), function(dane)
  6. {
  7. $("#labelek1").html(dane);
  8. });
  9.  
  10. return false;
  11. });
  12. </script>
  13.  
  14. <?php
  15. function __autoload($class_name)
  16. {
  17. require_once $class_name . '.php';
  18. }
  19.  
  20. $baza = new klasaPolaczenie();
  21. $firma = new klasaFirma($baza);
  22.  
  23. echo "<div id='labelek1'>";
  24. $result = $firma->pobierzDaneFirmy();
  25. while($wiersz = $result->fetch_array())
  26. {
  27. echo "<a href='usuwanie.php?id=".$wiersz['id']."' class='usun'>usuń</a>";
  28. echo " ";
  29. echo $wiersz['pole'];
  30. echo "<br/>";
  31. }
  32. echo "</div>";
  33. ?>


Plik usuwanie.php:
  1. <?php
  2. function __autoload($class_name)
  3. {
  4. require_once $class_name . '.php';
  5. }
  6.  
  7.  
  8. $baza = new klasaPolaczenie();
  9. $firma = new klasaFirma($baza);
  10.  
  11. $result = $firma->usunDaneFirmy($_GET['id']);
  12.  
  13. $result = $firma->pobierzDaneFirmy();
  14. while($wiersz = $result->fetch_array())
  15. {
  16. echo "<a href='usuwanie.php?id=".$wiersz['id']."' class='usun'>usuń</a>";
  17. echo " ";
  18. echo $wiersz['pole'];
  19. echo "<br/>";
  20. }
  21. ?>



Problem polega natomiast na tym, że przy pierwszym wyświetleniu strony w elemencie o id=labelek1 musi być wyświetlenie z bazy danych wartości:
  1. echo "<div id='labelek1'>";
  2. $result = $firma->pobierzDaneFirmy();
  3. while($wiersz = $result->fetch_array())
  4. {
  5. echo "<a href='usuwanie.php?id=".$wiersz['id']."' class='usun'>usuń</a>";
  6. echo " ";
  7. echo $wiersz['pole'];
  8. echo "<br/>";
  9. }
  10. echo "</div>";


Natomiast w pliku usuwającym z bazy danych wiersz, po usunięciu musi być znowu wyświetlenie danych z bazy:
  1. $result = $firma->pobierzDaneFirmy();
  2. while($wiersz = $result->fetch_array())
  3. {
  4. echo "<a href='usuwanie.php?id=".$wiersz['id']."' class='usun'>usuń</a>";
  5. echo " ";
  6. echo $wiersz['pole'];
  7. echo "<br/>";
  8. }


Więc jest to powtarzanie kodu odpowiedzialnego za wyświetlanie danych w dwóch plikach, ale innego pomysłu nie mam - czy istnieje inny sposób ?
tvister
Może warto aby ajax odwoływał się do samego siebie.
Drugi pomysłem jest utworzenie oddzielnej klasy formatującej html-a.
wiewiorek
Co masz na myśli pisząc aby ajax odwoływał się do samego siebie ?
tvister
Oba skrypty są do siebie podobne.
Może warto dać warunek że jeżeli komunikacja odbywa się za pomocą ajaxa to zrób tamto
jak nie to .... . Wtedy ograniczymy się do jednego pliku.
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.