ホームページ  >  記事  >  バックエンド開発  >  「関数再帰」を使用して PHP および MySQL_PHP に基づいた動的ツリー メニューを実装するチュートリアル

「関数再帰」を使用して PHP および MySQL_PHP に基づいた動的ツリー メニューを実装するチュートリアル

WBOY
WBOYオリジナル
2016-07-20 10:59:38785ブラウズ

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


http://www.bkjia.com/PHPjc/445580.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/445580.html技術記事ツリー メニューは、多くのデスクトップ アプリケーション システムで広く使用されています。その主な利点は、構造が明確であり、ユーザーが現在の位置を明確に把握できることです。でもウェブ上では…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。