2017.5.22 北京 大雨
創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司一直秉承“誠信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個客戶多一個朋友!專注中小微企業(yè)官網(wǎng)定制,網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。來到公司之后, 準(zhǔn)備把代碼移植到公司的小項(xiàng)目里,移植的過程中發(fā)現(xiàn)了一處設(shè)計(jì)有問題的地方,調(diào)整一下。
第一處錯誤是:構(gòu)建葉子節(jié)點(diǎn)的時候,只保存了節(jié)點(diǎn)的名稱,沒有存ID, 如果頁面跟后臺交互的時候,當(dāng)存在節(jié)點(diǎn)名稱一樣的情況,服務(wù)器就不能判斷出用戶正在再操作那個節(jié)點(diǎn)。
更改了一下數(shù)據(jù)結(jié)構(gòu)的定義:
用數(shù)組來存放一個節(jié)點(diǎn), 如果這個節(jié)點(diǎn)是末端節(jié)點(diǎn),則該數(shù)組,只有一個字符串元素,
如果一個節(jié)點(diǎn)為葉子節(jié)點(diǎn),則該節(jié)點(diǎn)將會有兩個字符串元素,第一元素存節(jié)點(diǎn)名稱,第二個元素存節(jié)點(diǎn)ID。
如果這個節(jié)點(diǎn)存在子節(jié)點(diǎn),則在當(dāng)前數(shù)組中,增加一個數(shù)組,所有的子節(jié)點(diǎn)的元素存放在這個數(shù)組中。
從數(shù)據(jù)庫中取數(shù)據(jù)的代碼調(diào)整如下:
function build_book_tree($data, $parentid){ $nodeName = ''; $child = []; foreach($data as $key => $val){ //如果當(dāng)前遍歷的項(xiàng)跟查詢的id相同,則獲取節(jié)點(diǎn)的名稱 if ($val[0] == $parentid){ $nodeName = $val[1]; } //如果當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)跟查詢的節(jié)點(diǎn)相同,則通過遞歸,獲取他的子節(jié)點(diǎn),并將結(jié)果,賦給當(dāng)前節(jié)點(diǎn)節(jié)點(diǎn)數(shù)組中 if ($val[2] == $parentid){ array_push($child, build_book_tree($data, $val[0])); } } //不存放空節(jié)點(diǎn) if (count($child) > 0) return array($nodeName, $child); else //return $nodeName; return [$nodeName, $parentid]; }生成HTML list的代碼調(diào)整如下
function build_html_list($data) { //輸出標(biāo)準(zhǔn)父子節(jié)點(diǎn) if (is_array($data) and count($data) == 2){ if (is_string($data[0]) and is_array($data[1])){ // 輸出節(jié)點(diǎn)名 echo "<li>".$data[0]; // 輸出子節(jié)點(diǎn) if (is_array($data[1])){ echo "<ul>"; foreach ($data[1] as $item){ if (is_string($item)){ echo "<li>".$item."</li>"; } else{ build_html_list($item); } } echo "</ul>"; } echo "</li>"; } // 輸出葉子節(jié)點(diǎn) 2017.5.22 add by sunhu else if (is_string($data[0]) and is_int($data[1])){ echo sprintf('<li cid="%d">%s</li>', $data[1], $data[0]); } } }這樣,如果用戶單擊一個 li 元素的時候,就可以從 li元素的 cid 屬性中,查找到 節(jié)點(diǎn) id 了
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
文章題目:PHP實(shí)現(xiàn)簡單的樹形列表之二-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://aaarwkj.com/article32/iejsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、網(wǎng)站改版、企業(yè)網(wǎng)站制作、Google、網(wǎng)站制作、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容