Wpis z mikrobloga

Mam taki oto problem, stworzyłem klasę, której obiekt wyświetla na stronie dane konkretnej osoby z bazy danych. Dodałem ocenianie (dodawanie typu oceny, np. "uczciwość" oraz samej oceny w postaci klikanej gwiazdki od 1 do 5) i zrobiłem to poprzez XMLHttpRequest, który wysyła odpowiedni POST do drugiego pliku PHP, gdzie ma miejsce dalsza obróbka samego oceniania, czyli odpowiednie zapytania SQL SELECT, INSERT, UPDATE i tak dalej.

Chciałbym w tym drugim pliku móc jakoś pobrać stworzony wcześniej obiekt, gdyż potrzebuję dostępu do pewnych metod. Co prawda mogę zrobić singleton, czy zapisać obiekt wcześniej w sesji i go sobie pobrać z dowolnego dalej miejsca, ale wydaje mi się to być niezgodne z przyjętymi zasadami oop lub nawet z jakimiś zasadami bezpieczeństwa.

Wysłanie $this jako argumentu do POST w XMLHttpRequest nie działa, bo wywala błąd z castowaniem. Czy istnieje możliwość przesłania obiektu jako POST do drugiego pliku? A może da się to zrobić w inny, bardziej elegancki sposób?

#php #js #javascript #pytanie
  • 12
piszesz, że potrzebujesz dostępu do pewnych metod. w obu plikach extenduj tą samą klasę w których zdefiniujesz potrzebne metody


@cube: Tak, to się zgadza, tylko ten obiekt ma nadpisane pola z MySQL, a metody, na których mi zależy, wykorzystują te pola. I ten sam problem dotyczy tego, co napisał @ChomikBojowy - oczywiście mogę w drugim pliku pobrać tylko ID, na nowo potworzyć obiekty, zapytania. Ale myślałem, że mogę po prostu przesłać
@ChomikBojowy: Chyba się nie zrozumieliśmy, może ja jakoś to pokrętnie tłumaczę. Mam klasę, która zawiera pola, czyli firstName, lastName itp. do tego gettery tych pól i metody, jak np. AddRate(), która dodaje ocenę i inne pola.

Ładuje się strona, tworzę obiekt, z GET pobieram ID i ten ID jest wykorzystywany w konstruktorze jako argument do pobrania danych osoby z MySQL. Ładnie pobiera wszystkie dane i wyświetla w tabelkach na stronie, wszystko
@Radeg90: możesz go zserializować w jednym pliku i przesłać jako string do drugiego. Tam deserializacja. Ale jeśli to encja z bazy to raczej unikałbym takiego przesyłania.