ホームページ >php教程 >PHP开发 >「関数再帰」を使用して、PHP と MySQL に基づいた動的なツリー メニューを実装します。

「関数再帰」を使用して、PHP と MySQL に基づいた動的なツリー メニューを実装します。

黄舟
黄舟オリジナル
2016-12-14 16:14:161307ブラウズ

ツリー メニューは、多くのデスクトップ アプリケーション システムで広く使用されており、その主な利点は、構造が明確であり、ユーザーが現在の場所を明確に把握できることです。ただし、Web 上のツリー メニューのアプリケーションでは、直接使用できる理想的な既成コンポーネントが存在しないため、プログラマは主に JavaScript を使用していくつかの単純なツリー構造のメニューを実装しますが、これらのメニューは で用意されることがよくあります。各メニュー項目と各メニュー項目間の階層関係を定義すると、別のメニュー構造が必要になることが多く、あまり便利ではありません。
関数の再帰を勉強した結果、この種のツリー メニューは再帰関数を通じてツリー メニューの表示を動的に変更でき、系列の数に制限がないことがわかりました。以下は、私が php、MySQL、JavaScript を使って書いた動的ツリー メニューの処理コードです。興味があれば、私と一緒に実装方法を見てください:)
まず、このデータベースが必要です。 、次のテーブルを作成します:
CREATE TABLE menu (
id tinyint(4) NOT NULL auto_increment,
parent_id tinyint(4) DEFAULT '0' NOT NULL,
name varchar(20),
url varchar(60),
PRIMARY KEY (id)
);
このテーブルでは
id はインデックスです
parent_id は前のメニューの ID 番号を保存するために使用され、それが第 1 レベルのメニューの場合は 0 です
name はメニューの名前ですつまり、ページに表示されるメニューのコンテンツです。
url メニューが最終レベルのメニューの場合、このフィールドは、他の最終レベル以外の場合にこのアドレスを保存するために使用されます。メニュー、このフィールドは空です
データベースが使用可能になったら、いくつかのレコードを追加できます。テストの際に使用したレコードをいくつか示します:
INSERT INTO menu VALUES ('1', '0', '人事管理', '');
INSERT INTO メニューの値 ( '2', '0', '通信', '');
INSERT INTO メニューの値 ('3', '1', 'ファイル管理', ''); INSERT INTO メニュー VALUES ( '4', '1', '勤怠管理', 'http://localhost/personal/attendance.php');
INSERT INTO メニュー VALUES ( '5', '2', 'アドレス帳') ', '') ;
INSERT INTO メニューの値 ( '6', '2', 'オンライン会議', '');
INSERT INTO メニューの値 ( '7', '3', 'http ://localhost /personal/add_achive.php');
INSERT INTO メニュー値 ( '8'、'3'、'アーカイブの検索'、'http://localhost/personal/search_archive.php'); menu VALUES ( ' 9', '3', 'アーカイブの削除', 'http://localhost/personal/delete_archive.php');
INSERT INTO menu VALUES ( '10', '5', '通信記録の追加' ,'
http://localhost/communication/add_address.php');
その他の関連記事については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。