この記事の PHP 無限分類ドロップダウン リスト メニューの実装方法 は、前回の記事 [PHP 無限分類 (1) データ テーブルの設計方法 ] と組み合わせる例になります。全員に詳しく説明します。
PHP Unlimitedclassification は、実際には分類手法です。どの手法も実装原理をマスターすれば非常に簡単ですが、PHP の無限分類の原理は再帰の原理です。
再帰に関する関連知識ポイントは、[PHP で再帰的並べ替えを実装するには?] を参照してください。 ]この記事はすでに紹介されています。さらに詳しく知りたい友人は参照してください。
前の記事で述べたように、PHP 無制限の分類はデータベースと連携して実装する必要があり、このデータベースには id と pid の 2 つのフィールドが必要です。 (pidは上位IDを表します)
以下では、簡易データテーブルモードによる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['title'] = str_repeat(' ', $spac) . '|--' . $row['title']; //把数组赋给 $result $result[] = $row; //递归调用,自己调用自己 这个括号里的参数和上面getList($pid=0...)是一样的$row['id']==$pid=0; getList($row['id'], $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['title']}</option>"; } echo "</select>";
このコードの最終的な効果は次のとおりです:
上記のコードでは、getList メソッドを定義します。デフォルトの $pid、参照される配列パラメータ &$result、およびスペース文字数 $spac の 3 つのオプションのパラメータを入力します。次に、主にこのメソッドで通常に使用できるように、データベースに接続する変数 $link をグローバル変数として設定します。
上の図の効果を実現するための主なアイデアは、例の配列を走査し、その親 pid が最上位の 0 と同じである場合に、配列名を抽出し、再編集して追加することです。再帰アルゴリズムは、次回、次のレベルの pid がある場合、その効果を呼び出すためにそれ自体を呼び出します。上記のドロップダウン リストを簡単に実現できます。
この記事は、PHP無限分類ドロップダウンリストの具体的な実装方法についての記事です。
PHP についてさらに詳しく知りたい場合は、PHP 中国語 Web サイト PHP ビデオ チュートリアル を参照してください。誰でも参照して学ぶことができます。
以上がPHP無限分類におけるドロップダウンリストの実装方法(2)(写真・テキスト+動画)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。