要達(dá)到這種效果的?應(yīng)該怎麼實(shí)現(xiàn)?求思路?前端該怎麼佈局?數(shù)據(jù)該怎麼處理?
小伙看你根骨奇佳,潛力無(wú)限,來(lái)學(xué)PHP伐。
這個(gè)我以前做過(guò)。這個(gè)我想,有兩種方案。第一種是 逐級(jí)加載,這種應(yīng)該都會(huì)操作,結(jié)合ajax。第二種就是一次性加載,這種方式步驟:
1,查詢所有的類目(類目的數(shù)據(jù)庫(kù)要?jiǎng)?chuàng)建好,子類需要有一個(gè)parent_id字段,還需要第幾級(jí)的字段,暫且叫l(wèi)evel- -深度)
2,找出level的最大值
3,經(jīng)過(guò)3層的foreach循環(huán),最外層的循環(huán)次數(shù)就是level的最大值,最裡面的兩層是核心,最裡層的循環(huán)任務(wù)就是,把類別目賦值到父類目的數(shù)組裡面,例如:
array(
0=>array('一級(jí)類目','一級(jí)子類目')
1=>array('一級(jí)類目2' ,'一級(jí)子類目')
}
一級(jí)子類目就是二級(jí)類目了(這個(gè)可以透過(guò)深度得知),插入到新的數(shù)組之後,記得及時(shí)清理元素組中的當(dāng)前數(shù)組。註:裡面兩層,第一層是依序循環(huán)所有層級(jí)的類目,第二層就是負(fù)責(zé)把子類目放到父類目的數(shù)組裡面。
最後產(chǎn)生的陣列的結(jié)果是:
一級(jí)類目1
-------二級(jí)類目1 -------二級(jí)類目2
-------------三級(jí)類目1
-------------三級(jí)類目2
一級(jí)類目2
-------二級(jí)類目1
接下裡,在前端頁(yè)裡,循環(huán),也是一層一層地,這個(gè)時(shí)候還是需要level 三層循環(huán)按順序類目就出來(lái)了! ! !