Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX][PHP] Przekazanie obiektu do pliku ładowanego przez AJAX
Petre
post 12.06.2012, 10:05:43
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 12.05.2012

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


Witajcie,
czy jest jakaś inna metoda,niż ta którą obecnie stosuję, a mianowicie:

plik index.php posiada jakieś załóżmy menu z linkami.
Każdy link jest obsługiwany przez jquery i ajax czyli, jak wszystkim pewnie wiadomo, klikamy w odnośnik i następuje załadowanie przy użyciu ajaxu nowej treści.
Pytanie teraz:
w index.php tworzę obiekt do obsługi bazy danych (oczwyiście required do pliku jest).
w ajaxie chciałbym wykorzystać zapytanie do bazy, ale nie mogę się odnieść do owego obiektu utworzonego w indexie.
Muszę ponownie w danym pliku AJAXu dawać odniesienie do pliku z klasą i definiować na nowo owy obiekt bazy inaczej dostaję:
Fatal error: Call to a member function getAll() on a non-object...

Jakieś propozycje ? Czy może jest to jedyne rozwiązanie i trzeba dopisywać za każdym razem ścieżkę i tworzyć tymczasowe obiekty ?
Go to the top of the page
+Quote Post
lukaskolista
post 12.06.2012, 10:29:05
Post #2





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


To wynika z natury skryptow - sa wykonywane i koniec, wszystko znika. Przed kolejnym wykonaniem skryptu wszystko trzeba zainicjowac na nowo. Mozna napisac system routingu + odpowiedni dla Ciebie autoload i za kazdym razem wywolywac index.php.

Jednak tak utworzone obiekty zawsze beda inne, jezeli zmienisz cos za 1 razem, to za 2 tej zmiany juz nie bedzie. Mozna zapamietywac stan obiektow (np. serializacja), ale chyba nie o to tutaj chodzi.

Ten post edytował lukaskolista 12.06.2012, 10:30:08
Go to the top of the page
+Quote Post
Petre
post 12.06.2012, 10:57:07
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 12.05.2012

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


czyli, jak rozumiem, sposób w jaki to obecnie robię jest właściwy ?
Go to the top of the page
+Quote Post
lukaskolista
post 12.06.2012, 12:23:17
Post #4





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


Tak, jednak da sie to uproscic, ale potrzeba do tego troche wkladu pracy
Go to the top of the page
+Quote Post
tehaha
post 12.06.2012, 12:40:45
Post #5





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


To, że przy każdym żądaniu http tworzy się nowe obiekty to sprawa oczywista i tak to po prostu działa. Z Twojego opisu wnioskuje, że to co u Ciebie komplikuje sprawy to mało elastyczny projekt skryptu.
Cytat
w index.php tworzę obiekt do obsługi bazy danych (oczwyiście required do pliku jest).

Czyli wygląda na to, że każdy plik zaczyna się całą masą require() żeby podołączać wszystko co może być potrzebne, a to jest słabe i sztywne rozwiązanie. Powinieneś do każdego pliku dołączać jakiś core.php, który będzie zawierał połączenie z bazą, metodę __autoload() i wszystko co będzie potrzebne będzie się automatycznie ładować.

http://php.net/manual/en/language.oop5.autoload.php
Go to the top of the page
+Quote Post
Petre
post 12.06.2012, 12:47:16
Post #6





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 12.05.2012

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


Cytat(tehaha @ 12.06.2012, 13:40:45 ) *
To, że przy każdym żądaniu http tworzy się nowe obiekty to sprawa oczywista i tak to po prostu działa. Z Twojego opisu wnioskuje, że to co u Ciebie komplikuje sprawy to mało elastyczny projekt skryptu.


Do tego właśnie dążę. Bez sensu jest ciągłe przeklepywanie masy require (pomijając już estetykę i przejrzystość kodu).
Pomysł z autoload przyznam, że jest całkiem ciekawy.
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: 30.07.2025 - 17:00