Maison  >  Article  >  programmation quotidienne  >  Méthode d'implémentation de liste déroulante dans la classification infinie PHP (2) (image, texte + vidéo)

Méthode d'implémentation de liste déroulante dans la classification infinie PHP (2) (image, texte + vidéo)

藏色散人
藏色散人original
2018-10-08 09:35:325802parcourir

La méthode d'implémentation de cet article du Menu déroulant de classification infinie PHP sera combinée avec l'article précédent [Méthode de conception de table de données de classification infinie PHP (1) ] L'exemple sera être expliqué en détail à tout le monde.

La classification illimitée PHP est en fait une technique de classification. Toute technique sera très simple à condition de maîtriser son principe de mise en œuvre, et le principe de classification infinie PHP est le principe de récursivité.

Les points de connaissances pertinents sur la récursivité se trouvent dans [Comment implémenter le tri récursif en PHP ? 】Cet article a déjà été présenté, les amis qui ont besoin d'en savoir plus peuvent s'y référer.

Comme mentionné dans l'article précédent, la classification infinie PHP doit être implémentée en combinaison avec une base de données, et cette base de données doit avoir les deux champs id et pid. (pid représente l'identifiant de niveau supérieur)

Ci-dessous, nous présenterons la méthode d'implémentation de Classification illimitée PHP via un mode table de données simple.

Une simple table de données de classification contient les informations suivantes :

Méthode dimplémentation de liste déroulante dans la classification infinie PHP (2) (image, texte + vidéo)

Liste déroulante de mise en œuvre de la classification infinie PHP L'exemple de code est le suivant :

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

L'effet final de ce code est le suivant :

Méthode dimplémentation de liste déroulante dans la classification infinie PHP (2) (image, texte + vidéo)

Dans le code ci-dessus, nous définissons un Méthode getList et configurez et transmettez trois paramètres facultatifs, qui sont un $pid par défaut, un paramètre de tableau référencé &$result et un nombre de caractères d'espace $spac. Ensuite, la variable $link qui se connecte à la base de données est définie comme variable globale, principalement pour qu'elle puisse être utilisée normalement dans cette méthode.

L'idée principale pour obtenir l'effet de l'image ci-dessus est de parcourir le tableau dans l'exemple lorsque son pid parent est le même que le niveau supérieur 0, d'extraire le nom du tableau, de le rééditer, d'ajouter. le préfixe, remettez-le, puis passez L'algorithme récursif s'appelle alors pour terminer une récursion La prochaine fois, s'il y a un pid du niveau suivant, il continuera à être appelé de cette façon, l'effet du. La liste déroulante ci-dessus peut être facilement réalisée !

Cet article concerne la méthode d'implémentation spécifique de la Liste déroulante de classification infinie PHP.

Si vous souhaitez en savoir plus sur PHP, vous pouvez suivre le site Web PHP chinois Tutoriel vidéo PHP, tout le monde est invité à s'y référer et à apprendre !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn