Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Własny, prosty silnik MVC, Problem z odświeżeniem widoku po akcji.
iro88
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 3
Dołączył: 13.10.2010
Skąd: Świdnica

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


Jestem w trakcie pisania własnego silnika MVC i natknąłem się na pewien problem z działaniem kodu.

index.php wygląda następująco.
  1. <?php
  2. require_once('app/init.php');
  3.  
  4. $router = new Application_Routing();
  5. $httprequest = new Application_Request();
  6.  
  7. $httprequest ->GetParamFromUrl();
  8. $router ->setMVC($httprequest->model,$httprequest->view,$httprequest->controller);
  9. $router ->doAction($httprequest->controller,$httprequest->action,$httprequest->param);
  10.  
  11. ?>


Chyba nie ma co dużo tłumaczyć. Index inicjuje (includuje potrzebne pliki) tworzy obiekty do odczytywania URLa i wczytania na tej podstawie odpowiednich plików Modelu, Widoku i Kontrolera.

Teraz ta część której nie jestem pewny, prawdopodobnie sama filozofia jest rąbnięta, ale już tłumaczę o co mi chodzi...
Następnie gdy mamy wczytany już model, kontroler i widok, aplikacja bierze (jeśli jest coś w url'u) dane do wykonania akcji (wywołania odpowiedniej funkcji) i ją wykonuje.

W widoku mam link, który podaje do url'a dane do akcji. Akcja zostaje wykonana, jednak, aby zobaczyć zmiany muszę ręcznie odświeżyć stronę, bo wszystko dzieje się na pliku index.php i nie odświeża mi go podczas klikania na link.

Teraz pytanie, co można z tym zrobić, aby hulało? Próbowałem z header ale wyskakuje błąd, że nie można przekierować na stronę która jest obecnie wczytana. Za jakiekolwiek wskazówki, podpowiedzi będę bardzo wdzięczny.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
fleshgrinder
post
Post #2





Grupa: Zarejestrowani
Postów: 77
Pomógł: 10
Dołączył: 4.11.2007

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


Tak, po stronie serwera zmiany praktycznie nie ma, ale mam wrażenie, że iro88 chodziło bardziej o to, co widać po stronie klienta (IMG:style_emoticons/default/smile.gif)

Poza tym:
Cytat(iro88)
W widoku mam link, który podaje do url'a dane do akcji. Akcja zostaje wykonana, jednak, aby zobaczyć zmiany muszę ręcznie odświeżyć stronę, bo wszystko dzieje się na pliku index.php i nie odświeża mi go podczas klikania na link.


Brzmi mi to tak, jakbyś przekazywał dane do widoku zanim jeszcze zostanie wykonana akcja.. Przykład, żebym wiedział czy dobrze zrozumiałem: powiedzmy, że masz widok listy elementów i akcję kasującą element podlinkowaną jako "usuń". Jest lista elementów, klikasz "usuń", element zostaje usunięty z bazy, ale po przeładowaniu wciąż widać go na liście, dopiero kliknięcie w odśwież sprawia, że pojawia się stan faktyczny - na tym polega problem? Jeśli tak, to znaczy, że akcje po stronie serwera wykonują się w niewłaściwej kolejności.

Masz pewnie kolejność podobną do tej:
- załaduj elementy i przekaż informacje do widoku
- wykonaj akcję (usuń element)
- renderuj widok

Dwa pierwsze kroki powinieneś zamienić miejscami.
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: 27.09.2025 - 20:14