首頁 每日程式設計 PHP知識 PHP無限分類(二)之下拉列表的實作方法(圖文+影片)

PHP無限分類(二)之下拉列表的實作方法(圖文+影片)

Oct 08, 2018 am 09:35 AM
php無限級分類

本篇文章關於PHP無限級分類之下拉列表選單的實作方法將結合上篇文章【PHP無限級分類(一)之資料表設計方法】中的例子為大家進行詳細解說。

PHP無限級分類其實也就是分類的一種技巧。任何一種技巧,我們只要掌握了它的實作原理,就會很簡單,而PHP無限級分類的原理就是遞歸的原理。

遞迴的相關知識點在【PHP遞迴排序怎麼實現的? 】這篇文章中已經介紹過了,需要了解的朋友可以參考。

那麼在前一篇文章中也說過,PHP無限級分類一定要結合資料庫來實現,而這個資料庫中就一定要有id和pid這兩個欄位。 (pid表示上一級id)

下面我們就透過簡單的資料表模式來介紹PHP無限級分類的實作方法。

一個簡單的分類資料表資訊如下:

PHP無限分類(二)之下拉列表的實作方法(圖文+影片)

#PHP無限級分類實作下拉清單的程式碼範例如下:

<?php
$host = "127.0.0.1";
$user = "root";
$password = "root";
$dbName = "php";
$link = mysqli_connect($host, $user, $password, $dbName);

function getList($pid = 0, &$result = array(), $spac = 0)
{
    global $link;
    $spac = $spac + 2;//标题前空格重复的次数
    //根据父id查找数据
    $sql = "select * from sort WHERE pid=$pid";
    //发送sql语句
    $res = mysqli_query($link, $sql);

    //判断$row里的值是否为空然后再循环
    while ($row = mysqli_fetch_assoc($res)) {
        //str_repeat 重复括号里的字符串,后面跟的是次数
        $row[&#39;title&#39;] = str_repeat(&#39; &#39;, $spac) . &#39;|--&#39; . $row[&#39;title&#39;];
        //把数组赋给 $result
        $result[] = $row;
        //递归调用,自己调用自己 这个括号里的参数和上面getList($pid=0...)是一样的$row[&#39;id&#39;]==$pid=0;
        getList($row[&#39;id&#39;], $result, $spac);
    }
    return $result;//把结果返回出去
}

$rs = getList();//使用方法
echo "<pre class="brush:php;toolbar:false">";
//print_r($rs);//打印方法结果

echo "<select>";
foreach ($rs as $k => $v) {
    echo "<option value =>{$v[&#39;title&#39;]}</option>";
}
echo "</select>";
登入後複製

此段程式碼最終實作效果如下圖:

PHP無限分類(二)之下拉列表的實作方法(圖文+影片)

#在上述程式碼中,我們定義了一個getList這個方法並且設定傳入三個可選參數,分別是一個預設的$pid、一個引用的陣列參數&$result和一個空格符計數$spac 。然後設定了連接資料庫的變數$link為全域變量,主要是為了能在這個方法中正常使用。

那麼實現上圖效果的主要想法就是,遍歷範例中的數組,當它的父級pid和頂級0相同時候,提取數組名字,重新編輯,加上前綴,放回去,然後通過遞歸演算法再自己調用自己,完成一次遞歸,到下一次,如果有下一級別的pid,則繼續調用,這樣就能簡單實現上述下拉列表的效果了!

本篇文章就是關於PHP無限級分類之下拉列表的具體實作方法介紹。

想了解更多PHP知識,可以追蹤PHP中文網PHP影片教學,歡迎大家參考學習!

以上是PHP無限分類(二)之下拉列表的實作方法(圖文+影片)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)