[JSON][jQuery][PHP] jak to ugryźć

0

Witam.
Muszę napisać coś, o mniej więcej takim działaniu:

  1. plik reprezentujący drzewo DOM przygotowany w formacie JSON
  2. kontroler w php który miałby za zadanie przekazywać dane z dokumentu do jQuery i odwrotnie za pomocą JSON
  3. funkcja w jQuery, która przekazywałaby klientowi obiekty w postaci kodu html

Ma ktoś przykłady podobnych rozwiązań?
Jak zbudować taki kontroler.
W jaki sposób przekazywać w jQuery dane do kontrolera, aby ten zapisał je w pliku?
Jak powinien wyglądać plik - może jakieś przykłady?

Z góry dzięki za pomoc.

0

Nikt ci tu gotowego kodu nie napisze, poczytaj dokumentację jQuery i PHP dotyczącą JSON.

0

heh...gotowego kodu nie oczekuje, chcialbym tylko zobaczyc jakies przyklady. to co chcę osiągnąc jest bardziej rozbudowane niz to o co pytam.
Faktynie moze zbyt wiele wymagam, więc moje aktualne pytanie: czy jest mozliwosc w jQuery, aby przekazac do kontrolera cały obiekt i potem zapisac go w pliku w formacie JSON? Jeśli tak to jak?

Z resztą sobie poradzę...mam nadzieję ;)

0

Eee... obiekty? Przecież najpierw serializujesz w JSON przez jQuery, potem wystarczy że w PHP dasz json_decode i masz obiekt.

0

wlasnie o to chodzi, ze nigdy nie uzywalem w praktyce json, ani zadnej innej reprezentacji danych (np, xml) poza bazami danych.
Chcialbym, zeby ktos najlepiej na przykladzie wytlumaczyl mi co i jak.

Czyli tak:
serializuje obiekt z poziomu jQuery,
przekazuje go do kontrolera (np, metodą post),
potem w kontrolerze json_decode,
i zapis wyniku do pliku

nastepnie:
odczytuje w jQuery - $.getJSON,
i juz mam obiekt w postaci takiej jak wyszukalbym do za pomoca selektora (np. $('#div') ) ,
a co za tym idzie mogę uzyc np metody appendTo aby wstawić obiekt jako html?

0

Szit... Jak ty chcesz wstawiać obiekt do HTML?! Można wyciągnąć dane z odkodowanego obiektu, ale nie obiekt.

0

ok. czyli takiej mozliwosci nie ma. Szkoda ,byloby idealnie ;).

czyli zeby wstawic obiekt do html musze najpierw go "zbudowac" z danych otrzymanych z pliku json, tak?

sorry, ze zadaje glupie,proste pytania ale chce sie najpierw zorientowac nieco w temacie zeby moc zaczac dzialac;)

0

Zabierasz się za JS i PHP, a nie znasz HTMLa? Przecież ten obiekt musisz jakoś przetworzyć, no bo w jaki sposób przeglądarka miałaby ci coś z robić z obiektu typu:

"nazwaklienta1": "Jan Kowalski"
"wiekklienta1": "33"

itp. Poza tym z tą idealnością to nie rozumiem o co ci chodzi. Wystarczy z obiektu wyciągnąć poszczególne wartości i je przedstawić w tabelce/divie/czymś innym.

0

sorry, pisałem, ze to co chcę zrobić jest dużo bardziej rozbudowane;).
nie mam zamiaru trzymać danych w stylu

"nazwaklienta1": "Jan Kowalski"
"wiekklienta1": "33"

html znam bardzo dobrze.

dzięki za pomoc

0

może ktoś mi podpowie...
jak mam dostać się do obiektu po wczytaniu go do jQuery z pliku json, skoro:

a) nie wiem ile jest obiektów
b) nie znam nazw tych obiektów

dla przykładu: mam plik example.json

{
	o1:{
		tagname:'div',
		parent:'none',
		children:{
			o1:{
				tagname:'p',
				parent:'div1',
			},
			o2:{
				tagname:'p',
				parent:'div1',
			}
		}
	},
	o2:{
		tagname:'div',
		parent:'none',
	}
}

o[x] (gdzie x to kolejny numer) - może być ich nieskończenie wiele na każdym poziomie

obiekty pobieram do jQuery tak:

$.postJSON('example.json', {}, function(json){
//działania na obiektach
});
//funkcji postJSON() nie ma w standardowej bibliotece jQuery, ale sobie dopisałem i działa poprawnie

np. alert(json.o1.tagname); w środku function(json){} zwróci: div

jednak chodzi o to jak sprawnie poruszać się po tych obiektach i działać na nich, skoro może być ich nieskończenie wiele?

0

$.each, for (var i in list), opcji jest co najmniej kilka.

0

ok. już sobie z tym poradziłem:).
zmieniłem trochę strukturę pliku .json i napisałem odpowiednią funkcję:). wszystko działa jak należy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1