Witam
jestem laikiem, mam jednak nadzieje ze początkującego nie zbesztacie,
zaczne od tego co chce osiągnąć :
1. chce osiągnąć taki kod, jest on mi potrzebny do menu : (kategorie i podkategorie):
<script type="text/plain">{"children":[
{"children":[{"children":[],"id":9000,"localizedName":"pokoje do wynajęcia"},
{"children":[],"id":9008,"localizedName":"mieszkania i domy do wynajęcia"},
{"children":[],"id":9073,"localizedName":"mieszkania i domy - sprzedam"},
{"children":[],"id":9194,"localizedName":"działki"},
{"children":[],"id":9074,"localizedName":"krótki termin i domki letniskowe"},
{"children":[],"id":9072,"localizedName":"lokal i biuro"},
{"children":[],"id":9071,"localizedName":"parking i garaż"},
{"children":[],"id":9772,"localizedName":"kupię mieszkanie, dom, lokal, działkę"},
{"children":[],"id":9773,"localizedName":"szukam mieszkania do wynajęcia"},
{"children":[],"id":9774,"localizedName":"szukam pokoju do wynajęcia"}],
"id":2,"localizedName":"Nieruchomości"},
{"children":[{"children":[],"id":9026,"localizedName":"samochody osobowe"},
{"children":[],"id":9636,"localizedName":"części i akcesoria samochodowe"},
{"children":[],"id":9027,"localizedName":"samochody dostawcze"},
{"children":[],"id":9028,"localizedName":"motocykle i skutery"}],
"id":5,"localizedName":"Motoryzacja"}],
"id":0,"localizedName":"Wszystkie kategorie"}
2. posiadam tablice kategoria i podkategoria:
CREATE TABLE IF NOT EXISTS `kategoria` (
`katId` int(11) NOT NULL AUTO_INCREMENT,
`katName` varchar(255) NOT NULL,
PRIMARY KEY (`katId`)
)
INSERT INTO `kategoria` (`katId`, `katName`) VALUES
(1, 'PRACA'),
(2, 'RÓŻNE'),
(3, 'ODZIEŻ I BIŻUTERIA'),
(4, 'TELEFONY'),
(22, 'ANTYKI I SZTUKA'),
(6, 'AGD I RTV'),
(8, 'DOM I OGRÓD'),
(9, 'DLA FIRMY'),
(10, 'HANDEL I USŁUGI'),
(11, 'ELEKTRONIKA'),
(12, 'MOTORYZACJA'),
(13, 'MUZYKA I EDUKACJA'),
(14, 'NIERUCHOMOŚCI'),
(15, 'TOWARZYSKIE'),
(16, 'TURYSTYKA'),
(17, 'ZDROWIE I URODA'),
(18, 'FLORA I FAUNA'),
(19, 'SPORT I HOBBY'),
(20, 'ROLNICTWO'),
(21, 'DLA DZIECI');
===============================
CREATE TABLE IF NOT EXISTS `podkategoria` (
`idPod` int(9) NOT NULL AUTO_INCREMENT,
`idKat` int(9) NOT NULL DEFAULT '0',
`podName` varchar(255) NOT NULL DEFAULT '',
`podST` int(5) NOT NULL DEFAULT '0',
PRIMARY KEY (`idPod`),
KEY `idKat` (`idKat`)
)
INSERT INTO `podkategoria` (`idPod`, `idKat`, `podName`, `podST`) VALUES
(83, 3, 'Biżuteria', 1),
(84, 1, 'Fizyczna', 1),
(85, 6, 'Elektronika', 1),
(86, 6, 'Sprzęt AGD', 1),
(87, 6, 'Sprzęt audio', 1),
(88, 6, 'TV i Video', 1),
(89, 22, 'Antyki', 1),
(90, 22, 'Kolekcje', 1),
(91, 22, 'Sztuka', 1),
(92, 22, 'Pozostałe', 1),
(93, 8, 'Budownictwo', 1),
(94, 8, 'Meble', 1),
(101, 18, 'Psy', 1),
...
(247, 0, 'Brak', 0);
3. znalazłem przykład który mógł by pomoc jednak nie bardzo wiem co w nim poprawić, dlatego proszę o rade sugestie pomoc.
Podkreślam to jest przykład nie ma nic wspólnego z moimi danymi
var arry = [{ "Id": "1", "Name": "abc", "Parent": "", "attr": "abc" },
{ "Id": "2", "Name": "abc", "Parent": "1", "attr": "abc" },
{ "Id": "3", "Name": "abc", "Parent": "2", "attr": "abc" },
{ "Id": "4", "Name": "abc", "Parent": "2", "attr": "abc" }];
var map = {};
for(var i
= 0; i
< array.length
; i
++){ obj.items= [];
map[obj.Id] = obj;
var parent = obj.Parent || '-';
if(!map[parent]){
map[parent] = {
items: []
};
}
map[parent].items.push(obj);
}
return map['-'].items;
}
var r = convert(arry)
?>
ten przyklad generuje kod:
[{
"Id" : "1",
"Name" : "abc",
"Parent" : "",
"attr" : "abc",
"children" : [{
"Id" : "2",
"Name" : "abc",
"Parent" : "1",
"attr" : "abc",
"children" : [{
"Id" : "3",
"Name" : "abc",
"Parent" : "2",
"attr" : "abc",
"children" : []
}, {
"Id" : "4",
"Name" : "abc",
"Parent" : "2",
"attr" : "abc",
"children" : []
}]
}]
}]
niestety nie wiem jak zmodyfikowac ten przykład, by uzyskać to co chce czyli punkt 1 (kod prawidłowy)
prosze o radę, pomoc w tej sprawie.