搜索
首页每日编程PHP知识PHP无限级分类(二)之下拉列表的实现方法(图文+视频)

本篇文章关于PHP无限级分类之下拉列表菜单的实现方法将结合上篇文章【PHP无限级分类(一)之数据表设计方法】中的例子为大家进行详细解说。

PHP无限级分类其实也就是分类的一种技巧。任何一种技巧,我们只要掌握了它的实现原理,就都会很简单,而PHP无限级分类的原理就是递归的原理。

递归的相关知识点在【PHP递归排序怎么实现的?】这篇文章中已经介绍过了,需要了解的朋友可以参考。

那么在前一篇文章中也说过,PHP无限级分类一定要结合数据库来实现,而这个数据库中就一定要有id和pid这两个字段。(pid表示上一级id)

下面我们就通过简单的数据表模式来介绍PHP无限级分类的实现方法。

一个简单的分类数据表信息如下:

8a21a2ff21dd6057baa1dcff7580f5c.png

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>";

此段代码最终实现效果如下图:

32e5e3c5ca96c861875b8aae6c08c28.png

在上述代码中,我们定义了一个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

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器