Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework] Dorobienie przycisku "wyświetl więcej"
Ravik
post
Post #1





Grupa: Zarejestrowani
Postów: 95
Pomógł: 3
Dołączył: 8.05.2009

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


Witam,

Mam tutaj kod PHP odpowiadający za wyśietlenie określonych rekordów z bazy danych, których ilość na stronie jest limitowana również rekordem z bazy danych. Chodzi mi o to, że w pliku widoku chcę umieścić przycisk "wyświetl więcej" i po kliknięciu tego przycisku przeładowuje się strona i ilość wyświetlanych rekordów zwiększa się o 10. Przy kolejnym kliknięciu ma się dziać dokładnie to samo. Nie mam pojęcia jak zrobić to w Zendzie. W jaki sposób mam zmodyfikować ten kod PHP, aby po klknięciu w link zmienić zmienną $limit o +10 i w jaki sposób wysłać to w pliku wyglądu?

Będę wdzięczny za wszelkie wskazówki.

Pozdrawiam

  1. function newAction() {
  2.  
  3. $db = Zend_Registry::get('db');
  4. $db->setFetchMode(Zend_Db::FETCH_OBJ);
  5.  
  6. $settings = new SettingsTable;
  7. $limit = $settings->fetchRow('title = "newLimit"'); // limit pobierany z bazy danych i na tej podstawie jest określona liczba ogłoszeń, które mają się pojawiać na stronie
  8.  
  9. $select = $db->select();
  10. $select->from('advertisements', array('id', 'areaSize', 'price', 'description', 'city', 'announceDate', 'promo'))
  11. ->joinInner('propertyTypes', 'propertyTypes.id = advertisements.propertyType', 'type as propertyType')
  12. ->joinInner('advertisementTypes', 'advertisementTypes.id = advertisements.advertisementType', 'type as advertisementType')
  13. ->joinInner('provinces', 'provinces.id = advertisements.province', 'province')
  14. ->joinLeft('images', 'images.advertisementId = advertisements.id', 'image')
  15. ->where('dayCounter > 0')
  16. ->group('id')
  17. ->limit($limit->value, 0);
  18.  
  19. $result = $db->query($select);
  20. $this->view->advertisements = $result->fetchAll();
  21. $this->view->hideBack = 1;
  22.  
  23. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Ravik
post
Post #2





Grupa: Zarejestrowani
Postów: 95
Pomógł: 3
Dołączył: 8.05.2009

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


Niech Wam Bóg w dzieciach wynagrodzi (IMG:style_emoticons/default/smile.gif)

Niestety w żaden sposób tego pojąć nie mogę. W folderze modelu mam tylko pliki z kodem wyglądającym tak:

  1. class AdvertisementsTable extends Zend_Db_Table_Abstract {
  2. protected $_name = 'advertisements';
  3. protected $_primary = 'id';
  4. }
  5.  


Tylko w kolejnych plikach zmienia się $_name i $_primary. W modelu nie ma ani jednej funkcji zwracającej lub pobierającej coś.
Wszystko jest w plikach kontrolera. Plik który mi odpowiada za wyświetlanie tych rekordów wygląda tak:


  1. class AdvController extends Properties_Controller_Action {
  2.  
  3. function newAction() {
  4.  
  5. $db = Zend_Registry::get('db');
  6. $db->setFetchMode(Zend_Db::FETCH_OBJ);
  7.  
  8. $settings = new SettingsTable;
  9. $limit = $settings->fetchRow('title = "newLimit"');
  10.  
  11. $select = $db->select();
  12. $select->from('advertisements', array('id', 'areaSize', 'price', 'description', 'city', 'announceDate', 'promo'))
  13. ->joinInner('propertyTypes', 'propertyTypes.id = advertisements.propertyType', 'type as propertyType')
  14. ->joinInner('advertisementTypes', 'advertisementTypes.id = advertisements.advertisementType', 'type as advertisementType')
  15. ->joinInner('provinces', 'provinces.id = advertisements.province', 'province')
  16. ->joinLeft('images', 'images.advertisementId = advertisements.id', 'image')
  17. ->where('dayCounter > 0')
  18. ->group('advertisements.id')
  19. ->order('announceDate DESC')
  20. ->limit($limit->value, 0);
  21.  
  22. $result = $db->query($select);
  23. $this->view->advertisements = $result->fetchAll();
  24. $this->view->hideBack = 1;
  25.  
  26. }
  27. }


Wygląda na to, że nie został tu poprawnie zastosowany model MVC i teraz nie mam pojęcia jak zastosować wiedzę, którą mi przekazaliście, bo zbyt dużo pojęcia o Zendzie nie mam. Będę wdzięczny z jakieś wskazówki dotyczące mojego problemu związanego z wyświetleniem dodatkowych 10 rekordów w funkcji newAction po klknięciu przycisku w widoku.

Pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 15.10.2025 - 10:52