Logika kodu w MVC + AJAX |
Logika kodu w MVC + AJAX |
11.06.2013, 08:37:30
Post
#1
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 4 Dołączył: 14.05.2013 Ostrzeżenie: (0%) |
Witam
Poniżej opiszę sytację nad którą mam problem. Moim problemem jest rozmieszczenie funkcji które są wywoływane poprzez AJAX Załóżmy taka sytuację. Mam pewien kontoller a w nim metode add($name)
nastepnie moj model wyglada tak
wszystko działa dobrze, po kliknięciu w dany link element zostaje dodany oraz ponownie wyświetlona lista elementów(z ładowanego widoku) z tym ze dochodzi do przeładowania strony. I teraz moje pytanie jak dodać tutaj obsługę AJAX, skoro metoda add na końcu ładuje widok ? A mi potrzebne jest np. ID ostatniego rekordu. Jak mam to zrobić ? Musze zrobić osobne metody w Controlerze i Modelu do obsługi AJAXowych żądań ? np. tak ?
Ten post edytował pabito 11.06.2013, 08:39:49 |
|
|
11.06.2013, 08:47:55
Post
#2
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 24 Dołączył: 30.03.2009 Skąd: Rokitno Szlacheckie Ostrzeżenie: (0%) |
Albo dwie osobne metody, albo osobne widoki wybierane na podstawie typu żądania.
|
|
|
11.06.2013, 08:53:12
Post
#3
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 4 Dołączył: 14.05.2013 Ostrzeżenie: (0%) |
|
|
|
11.06.2013, 09:31:40
Post
#4
|
|
Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) |
Raczej coś takiego:
Dlaczego model pod asynchroniczny request miałby się różnić od modelu synchronicznego requesta? -------------------- Moja gra - scraby.io
|
|
|
11.06.2013, 09:34:18
Post
#5
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 4 Dołączył: 14.05.2013 Ostrzeżenie: (0%) |
miałem na myśli stworzenie nowych metod w modelu i controllerze a nie stworzeniu nowego, osobnego modelu.
edit: źle wczytałem się w Twój przykład Raczej coś takiego:
ciekawe rozwiązanie, ciekawe co myślą o nim inni Ten post edytował pabito 11.06.2013, 09:37:24 |
|
|
11.06.2013, 09:52:24
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) |
Nie wiem czy dobrze zrozumiałem problem, ale może coś takiego?
|
|
|
11.06.2013, 10:13:54
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) |
Pytanie po co ajax ma ładować widok, po jego detekcji robisz exit, ewentualnie wysyłasz json.
Tak jak wyżej:
Ten post edytował !*! 11.06.2013, 10:14:14 -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
11.06.2013, 11:01:25
Post
#8
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 4 Dołączył: 14.05.2013 Ostrzeżenie: (0%) |
@up
chyba w przypadku gdy żądanie nie będzie AJAXowe element się nie doda. ? |
|
|
11.06.2013, 12:10:31
Post
#9
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) |
Cytat Pytanie po co ajax ma ładować widok, po jego detekcji robisz exit, ewentualnie wysyłasz json. Po to należy załadować widok żeby wyświetlić/wysłać/wyrenderować json. Kontroler ma wybrać odpowiedni widok (na podstawie żądania) i go wyświetlić, niezależnie od tego czy będzie to html, json czy pdf. O wywołaniu exit należy zapomnieć, po pierwsze źródło żądania nie ma pojęcia co się stało. Dodatkowo nie wykonają się żadne zadania konieczne do wykonania już po akcji. |
|
|
11.06.2013, 12:48:08
Post
#10
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 4 Dołączył: 14.05.2013 Ostrzeżenie: (0%) |
czyli pomysł #luq jest poprawny i najlepszy?
|
|
|
11.06.2013, 12:58:16
Post
#11
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) |
Moim zdaniem nie. Skoro dane przesyłane z przeglądarki za pomocą ajaxa nie różnią się od tych pochodzących z synchronicznego żądania to kontroler ma dokładnie to samo zadanie i wykonuje je w ten sam sposób. Powinien wykonać operacje na modelu i przekazać go do widoku. Jeden model, jeden kontroler, dwa widoki.
|
|
|
11.06.2013, 16:21:56
Post
#12
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 4 Dołączył: 14.05.2013 Ostrzeżenie: (0%) |
hmm już sam nie wiem.
Mój cel: Gdy wywołam skrypt synchronicznie, chcę aby element został usunięty i wyświetlony widok. Gdy wywołam skrypt asynchronicznie, chcę aby element został usunięty, zwrócona informacja o nim i wyświetlony widok. |
|
|
12.06.2013, 07:12:16
Post
#13
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 24 Dołączył: 30.03.2009 Skąd: Rokitno Szlacheckie Ostrzeżenie: (0%) |
a czy stworzenie praktycznie dwóch tych samych metod, które robią prawie to samo nie będzie niepotrzebnym duplikowaniem kodu ?
Inna opcja to zmiana widoku. dla normalnego:
|
|
|
Wersja Lo-Fi | Aktualny czas: 10.06.2024 - 10:47 |