Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX][PHP][jQuery] usuwanie wierszy z bazy danych bez przeladowania strony - powtarzalnosc kodu
wiewiorek
post 25.11.2009, 07:50:53
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 11
Dołączył: 5.09.2009

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


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 ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
tvister
post 25.11.2009, 08:07:57
Post #2





Grupa: Zarejestrowani
Postów: 253
Pomógł: 29
Dołączył: 18.08.2008

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


Może warto aby ajax odwoływał się do samego siebie.
Drugi pomysłem jest utworzenie oddzielnej klasy formatującej html-a.


--------------------
Kto rano wstaje ten leje jak z cebra.
Go to the top of the page
+Quote Post
wiewiorek
post 25.11.2009, 08:42:31
Post #3





Grupa: Zarejestrowani
Postów: 247
Pomógł: 11
Dołączył: 5.09.2009

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


Co masz na myśli pisząc aby ajax odwoływał się do samego siebie ?
Go to the top of the page
+Quote Post
tvister
post 25.11.2009, 11:53:45
Post #4





Grupa: Zarejestrowani
Postów: 253
Pomógł: 29
Dołączył: 18.08.2008

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


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.


--------------------
Kto rano wstaje ten leje jak z cebra.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 21:21